在公有继承时,派生类的public,private,protected型的成员可以访问基类中的公有成员和保护成员,派生类的对象公可以访问基类的公有成员.在私有(private)继承时,派生类的public,private,protected型的成员函数可以访问基类公有成员和保护成员,但派生类的对象不可以访问基类的任何成员.Protected的继承方式与private继承相同.
基类 Public继承 Protected继承 Private继承
Public成员 public protected private
Protected成员 protected protected private
Private成员 ---- ------ -----
// InheritTest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
using namespace std;
class A
{
public:
const static int a = 1;//若在定义时就初始化,那么必须声明为const static
protected:
const static int b = 2;
private:
const static int c = 3;
};
class B : public A
{
public:
B()
{
d = b;//子类可以在内部访问从父类继承的protected成员
};
public:
int d;
};
int _tmain(int argc, _TCHAR* argv[])
{
A* obj1 = new A();
B* obj2 = new B();
cout<<obj1->a<<endl;
//cout<<obj1->b<<endl;//对象不能直接从外面访问protected成员
cout<<obj2->a<<endl;
cout<<obj2->d<<endl;
//cout<<obj->c<<endl;
//getchar();
int i;
cin>>i;
return 0;
}