在 C++ 语言中 , 使用 struct 和 class 关键字 , 都可以 用于定义 类 , 这些被定义的类 都 具有相似的语法和功能 , 只是在默认情况下有一些不同的行为 ;
在 C 语言中 , 使用 struct 关键字 , 可以定义结构体 ; 没有 class 关键字 ;
struct 和 class 关键字 定义的类 的 默认访问权限 不同 ,
下面的代码中 , 使用 struct 关键字 定义的 Student 类中的 成员变量 age 没有显式声明访问权限 , 其默认的成员的访问权限是 public , 可以在 类的外部 和 类的内部 访问 ;
struct Student {
// 默认的成员的访问权限是 public
// 可以在 类的外部 和 类的内部 访问
int age;
};
下面的代码中 , 使用 class 关键字 定义的 Teacher 类中的 成员变量 age 没有显式声明访问权限 , 其默认的成员的访问权限是 private , 只能在 类的内部 访问 ;
class Teacher{
// 默认的成员的访问权限是 private
// 只能在 类的内部 访问
int age;
};
struct 和 class 关键字 定义的类 的 默认 继承方式 不同 ,
在 C++ 语言中 , 子类 继承 父类 时 可以获取父类的所有 属性 和 行为 ;
C++ 的 继承 可以通过使用冒号 :
和 访问修饰符 public
/ protected
/ private
来定义 ;
子类可以继承父类的 3 种方式 :
使用 struct 关键字 定义的类 , 成员的默认 继承方式是 public ,
// 默认是 public 继承
struct Student : public Person {
// ...
};
使用 class 关键字 定义的类 , 成员的默认 继承方式是 private ;
// 默认是 private 继承
class Teacher : private Person {
// ...
};
在实际开发中 , 推荐使用 class 关键字 定义 类 , 推荐使用 struct 关键字 定义 结构体 ;