C++的继承操作---基类指针访问派生类问题---基类成员恢复访问属性问题
2014-08-13 21:54
651 查看
#include "stdafx.h" #include <iostream> #include <algorithm> using namespace std; class Base { public: int num; virtual void func() { cout<<"Do something in Base"<<endl; } }; class Derived:private Base { public: Derived(int i)/*:num(i)*/ //这样不行,在这里是初始化,而num在父类中已经进行了初始化 { num=i; //这样可以,在这里是赋值 } virtual void func() { cout<<"num="<<num<<endl; cout<<"Do something in Derived"<<endl; } public: using Base::num; //恢复访问属性 public: friend void getBasePtr(void); }; void getBasePtr(void) { Base* pb=new Derived(10); //这样就可以啦 pb->func(); } int main() { //Base* pb=new Derived(10); //使用private和protected的继承属性后,不可以这样赋值 //因为Base在Derived中已经是私有部分,不能在此处访问 //所以无法完成转换 getBasePtr(); system("pause"); return 0; }
相关文章推荐
- 第十二周C++【任务1】理解基类中成员的访问限定符和派生类的继承方式
- C++基类和派生类私有、保护、公有成员访问控制以及动态绑定、三种继承
- C++第十二周【任务1】理解基类中成员的访问限定符和派生类的继承方式
- 《C++第十二周实验报告1-1》----理解基类中成员的访问限定符和派生类的继承方式
- C++继承中基类和派生类之间指针传递问题
- C++第十三周任务-项目一(理解基类中成员的访问限定符和派生类的继承方式)
- C++ 中基类及派生类中继承成员访问权限
- C++学习之路—继承与派生(一):基本概念与基类成员的访问属性
- C++基类成员函数访问派生类对象的基类成员问题
- C++基础(八)继承与派生——派生类成员的访问属性
- C++:调整基类成员在派生类中的访问属性的其他方法(同名成员和访问声明)
- 派生类可以恢复继承成员的访问级别, 但不能使访问级别比基类中原来指定的更严格或更宽松 [C++Primer Page484 : 2去除个别成员]
- C++中public,protected,private派生类继承问题和访问权限问题
- c++类继承中的using声明,派生类中用using声明改变基类成员的访问权限
- 类的 继承 使用关键字 extends 单向 重载基类 派生类访问基类的方法 基类名::基类方法或属性
- C++中 public和private派生类继承问题和访问权限问题
- 鸡啄米:C++编程入门系列之三十七(继承与派生:派生类对基类成员的访问控制之公有继承)
- 理解基类中成员的访问限定符和派生类的继承方式
- C++中 public和private派生类继承问题和访问权限问题
- [疑问]C/C++中为什么在类外利用多态基类指向派生类指针可以调用类的私有成员函数?