c 中的struct
在c语言中我们都知道,数组代表的是相同类型的变量的集合,但是要存放不同类型的变量,就需要借助结构体。结构体用关键字struct声明。
声明方式:
struct 结构体名{
结构体所包含的变量或数组
};
结构体就是一个不同数据的集合,里面包含了许多不同的变量和数组。但是各个成员不能被初始化(比如直接在结构体内int a=0;可以把他理解成一个类,一个模板)。并且结尾的分号不能省略,因为这是一条完整的语句。
使用实例:
struct node{
cahr data;
char * next;
};
c++中的struct
在c++中继续保留了struct这个功能,但是相比c语言中的struct,c++做了一些扩展,它此时可以被当作一个拥有public访问权限的class,并且和class一样可以拥有成员函数。
例如
c++版本
struct person{
char name[10];
int age;
void getname();
};
void person::getname(){
return name;
}
在执行时最终会被解释成c版本,即成员函数不在结构体中包括上述的getname也相当与下面的写法
void getname(person *p){
return p->name;
}
c++中的struct与class的区别
struct的成员默认权限是public,而class的成员默认权限是private;
struct的默认继承方式为public,而class的默认继承为private;
模板为C++语言新增特性,C语言没有,只有class可用于定义参数,而struct不可以;