在C++中

关键字struct和class都可以定义类,唯一的不同在于struct定义的类的成员的默认访问权限是public,class定义的类的成员的默认访问权限是private。
如果在定义类时希望类的所有成员都是public的,可以直接使用struct定义。

struct在C语言中

在C语言中定义结构体有两种方式:使用typedef和不使用typedef

不使用typedef时,定义变量需要使用struct关键字

  1. struct Birthday{
  2. int year;
  3. int month;
  4. int day;
  5. } b1, *b2; // 可以在结构体定义的同时定义结构体变量
  6. // 结构体定义之后再定义变量需要使用合法
  7. struct Birthday b3; // 合法
  8. // Birthday b4; // 不合法
  9. // unknown type name 'Birthday'; use 'struct' keyword to refer to the type

使用typedef时,定义变量可直接使用结构体名字

typedef的用法:typedef type new_type;typenew_type名字可以相同。

  1. typedef struct Birthday{
  2. int year;
  3. int month;
  4. int day;
  5. } BD;
  6. // 定义变量时可以使用struct Birthday,也可以使用别名BD
  7. BD b1; // 合法
  8. struct Birthday b2; // 合法