C++的继承参数问题
2008-06-23 00:03
330 查看
#include <iostream.h> class A { public: A(int x){this->x=x;} void show(){} protected: int x; }; class B : public A { public: B(int mx=0):A(mx){y=100;} void show(A& a) { cout<<a.x; } B operator+(B& b) { return this->x+b.x; } protected: int y; }; void main() { B b(10),b2(1); A a(100); b2.show(a); }
上面代码出现错误,由于A中的x是protected的,虽然B是A的派生类,但是由于A只是作为B的某个方法的参数,它仍然只会从外部进行读取,所以不能访问它的内部。但如果参数是本身的类的话,就能正常读取。这说明了派生类不能读取参数基类的非公共成员。
相关文章推荐
- C++用指针变量作为函数的参数接受数组的值的问题详细总结
- C++中虚拟继承问题
- C++虚继承(十) --- 谈谈陈皓遗留的问题
- 怎么解决C++出现的问题:error C2064: 项不会计算为接受 1 个参数的函数
- c++之指针作为函数参数传递的问题
- C++面向对象编程--继承带参数构造函数的类
- C++中继承中的同名成员问题
- 关于C/C++的二维数组作为函数参数问题
- C++指针参数问题讨论
- C++指针参数问题
- C++中 public和private派生类继承问题和访问权限问题
- c++子类继承父类的覆盖问题
- C++中的虚函数继承问题[转]
- 关于C++模板封装的问题(关于C++模板参数的声明)
- C++中 public和private派生类继承问题和访问权限问题
- C/C++中传递数组参数的问题
- C++继承、虚继承、虚函数类的大小问题
- c#调用API 和c++dll的参数问题
- C++之钻石问题和解决方案(菱形继承问题)
- C++继承、虚继承、虚函数类的大小问题