struct与class关键字在定义类中的区别
2012-07-13 01:30
381 查看
struct关键字是从C语言中继承过来的,class和struct均可定义类,用它们定义类的唯一差别在于默认的成员保护级别和默认的继承保护级别(P57--第57页,2.8--章节2.8;P485,15.2.5):
默认情况下,struct的保护级别为public,而class的保护级别为private。
下面分别就这两种情况进行举例:
例1:默认的成员保护级别
以上两个类没有显示地使用访问标号(public, protected, private),类的成员具有默认的保护级别,类S_Base成员的保护级别为public,类C_Base成员的保护级别为private。相当于如下代码:
例2:默认的继承保护级别
以上两个类相当于:
References:
《C++ Primer中文版第4版》P57, 485
默认情况下,struct的保护级别为public,而class的保护级别为private。
下面分别就这两种情况进行举例:
例1:默认的成员保护级别
struct S_Base { int foo(int) { return 0; } int val; }; class C_Base { int foo(int) { return 0; } int val; };
以上两个类没有显示地使用访问标号(public, protected, private),类的成员具有默认的保护级别,类S_Base成员的保护级别为public,类C_Base成员的保护级别为private。相当于如下代码:
struct S_Base { public: int foo(int) { return 0; } int val; }; class C_Base { private: int foo(int) { return 0; } int val; };
例2:默认的继承保护级别
struct S_Derived : S_Base { }; class C_Derived : C_Base { };
以上两个类相当于:
struct S_Derived : public S_Base { }; class C_Derived : private C_Base { };
References:
《C++ Primer中文版第4版》P57, 485
相关文章推荐
- struct与class关键字在定义类中的区别
- 使用class或struct关键字定义类
- C# struct 与class 使用 new 关键字的区别
- 关键字struct与class区别
- 关键字-分节15(struct 与class 的区别)
- C++中struct和class关键字的三个区别
- class struct关键字区别
- C++中关键字Struct和Class的区别
- struct 和 class 定义类的区别
- C++中struct和class定义类区别
- C++中struct和class关键字的区别
- 游戏面试题:struct与class的区别
- struct和class的区别
- Struct和Class的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- struct关键字和class关键字
- Struct和Class的区别
- C#中class与struct的区别
- 基本问题——C++中struct和class的区别
- C++中class和struct的区别