C++ 中为了兼容 C 语言而保留了 C 语言的 struct 关键字,并且加以扩充。在 C 语言中,struct 只能包含成员变量,不能包含成员函数。而在 C++ 中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。
C++ 中的 struct 和 class 基本是通用的,唯有几个细节不同:
C++
struct A{};
class B : A{}; // private 继承
struct C : B{}; // public 继承
举例:
C++
#include<iostream>
using namespace std;
class A{
public:
void funA(){
cout << "class A" << endl;
}
};
struct B: A{ // 由于 B 是 struct,A 的默认继承级别为 public
public:
void funB(){
cout << "class B" << endl;
}
};
class C: B{ // 由于 C 是 class,B 的默认继承级别为 private,所以无法访问基类 B 中的 printB 函数
};
int main(){
A ex1;
ex1.funA(); // class A
B ex2;
ex2.funA(); // class A
ex2.funB(); // class B
C ex3;
ex3.funB(); // error: 'B' is not an accessible base of 'C'.
return 0; }
阅读量:2011
点赞量:0
收藏量:0