same data members in both base and derived class
我是C++编程新手,我在阅读继承概念,我对继承概念有一个疑问:如果基类和派生类有相同的数据成员会发生什么。另外,请按以下方式填写我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include"stdafx.h" #include <iostream> using namespace std; class ClassA { protected : int width, height; public : void set_values(int x, int y) { width = x; height = y; } }; class ClassB : public ClassA { int width, height; public : int area() { return (width * height); } }; int main() { ClassB Obj; Obj.set_values(10, 20); cout << Obj.area() << endl; return 0; } |
在上面我声明的是与基类数据成员同名的数据成员,我用派生类对象调用了
当我调用
在这种情况下,它们不起作用,应将其移除。
如果要访问隐藏(或隐藏)数据成员,可以使用范围解析:
1 2 3 4 | int area() { return (A::width * A::height); } |