C和C++中结构体有什么不同?
1.C语言中的结构体只能由成员变量组成,而C++的结构体中既可以有成员函数,也可以有成员变量。
C语言的结构体
struct person{
char* _name;
char* _gender;
int _age;
};
C++的结构体
struct person{
void InitPerson(char* name,char* gender,int age){
_name = name;
_gender = gender;
_age = age;
}
char* _name;
char* _gender;
int _age;
};
2.C语言结构体的访问权限只能是public,C++中访问权限可以是privated、protected、public;
3.C语言结构体中不可以继承,C++可以从别的结构体或者类中继承过来。
4.C语言结构体使用的名称上有严格要求:
//C语言结构体的第一种用法:要使用这个结构体必须用:struct Person person;
struct Person{
char* _name;
char* _gender;
int _age;
}person;
//C语言结构体的第二种用法:要使用这个结构体必须用:Person person;
typedef struct Person{
char* _name;
char* _gender;
int _age;
}person;
//C语言结构体的第二种用法:要使用这个结构体必须用:Person person;
typedef struct{
char* _name;
char* _gender;
int _age;
}person;
5.C++结构体可以使用构造函数和析构函数
// C++结构体定义方法第一种 // 不需要struct直接使用:Person person; //
这时候person就是一个Person类型的变量
struct Person{
char* _name;
char* _gender;
int _age;
}person;
// C++结构体定义方法第二种 //
如果添加了关键词typedef会有区别,相当于给Person取了一个别名叫person,这里的person是一个结构体类型 //
使用的时候需要用:Person person
typedef struct Test{
int number;
char name[10];
}TestName;