亲宝软件园·资讯

展开

C++类和对象 详解C++之类和对象(1)

LUYAO_LY 人气:0
想了解详解C++之类和对象(1)的相关内容吗,LUYAO_LY在本文为您仔细讲解C++类和对象的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:C++类,C++对象,下面大家一起来学习吧。

c++类的由来(或者说为什么要增加类):我们知道c语言是面向过程的语言,c++是即面向过程又是面向过程的语言。那么这两个有着什么样的区别和联系呢?

C语言和C++的一大区别

接下来我们利用c语言的struct来说明:

C 语言中,结构体中只能定义变量。 在 C++ 中,结构体内不仅可以定义变量,也可以定义函数。 例如:如果我们用C语言实现一下的功能,那么我们会发现,在struct内我们只能去定义一些变量 的类型,而我们需要的函数反而要去单独去实现

typedef struct Student 
{
	char _name[20];
	int _age;
	char _sex[10];
}student;
  void SetStudentInfo(const char* name, const char* sex, int age)
 {
strcpy(_name, name);
strcpy(_sex, gender);
_age = age;
 }
  void print(student *s) 
{
	printf("%c:%age-%c", s->_name, s->_age, s->_sex);
 }
 

在c++内实现的话是:

// 这里是为了和c语言做出区别所以将函数的定义也直接放到结构体内作为内联函数,
如果函数的定义代码很多或者需要调用的次数多建议此处就只进行声明,之后在单独进行定义
struct Student 
{
 void SetStudentInfo(const char* name, const char* sex, int age)
 {
strcpy(_name, name);
strcpy(_sex, gender);
_age = age;
 }
 void print(student *s) 
{
	printf("%c:%age-%c", s->_name, s->_age, s->_sex);//此处为了区别和c语言struct的不同点利用了c语言的输出方法
 }
 	char _name[20];
	int _age;
	char _sex[10];
};
     

从上述例子我们可以看出在c++中struct可以包含函数的定义和变量,反观在c语言内struct就只能包含变量。

struct和class的区别

在c++中我们引入一个关键词class来指定指定这种既可以包含变量又可以包含函数声明的类型即为c++的类。struct在c++中也是类但是和class修饰还是有一些区别。我们用上述代码来说明这个区别:

这是struct修饰的类

struct Student 
{
 void SetStudentInfo(const char* name, const char* sex, int age);
 void print(student *s) 
 	char _name[20];
	int _age;
	char _sex[10];
}

这是class修饰的类

struct Student 
{
public:
void SetStudentInfo(const char* name, const char* sex, int age);
 void print(student *s) 
private:
 	char _name[20];
	int _age;
	char _sex[10];
}

在类中我们保护我们我们的数据,我们引入三种修饰:publicprivateprotected,这三个关键词代表着不同的权限。

而struct默认的是成员函数和成员变量都是public,而class修饰的话成员函数和成员变量都是必须给予修饰的,一般我们是将成员函数用public修饰而成员变量我们用private修饰。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!

加载全部内容

相关教程
猜你喜欢
用户评论