在C++中
关键字struct和class都可以定义类,唯一的不同在于struct定义的类的成员的默认访问权限是public,class定义的类的成员的默认访问权限是private。
如果在定义类时希望类的所有成员都是public的,可以直接使用struct定义。
struct在C语言中
在C语言中定义结构体有两种方式:使用typedef和不使用typedef
不使用typedef时,定义变量需要使用struct关键字
struct Birthday{
int year;
int month;
int day;
} b1, *b2; // 可以在结构体定义的同时定义结构体变量
// 结构体定义之后再定义变量需要使用合法
struct Birthday b3; // 合法
// Birthday b4; // 不合法
// unknown type name 'Birthday'; use 'struct' keyword to refer to the type
使用typedef时,定义变量可直接使用结构体名字
typedef的用法:typedef type new_type;
。type
和new_type
名字可以相同。
typedef struct Birthday{
int year;
int month;
int day;
} BD;
// 定义变量时可以使用struct Birthday,也可以使用别名BD
BD b1; // 合法
struct Birthday b2; // 合法