在公有继承时,派生类的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; }
|