#include <iostream>
using namespace std;
/*
* 继承遇到重名成员:
* 1,派生类定义了与基类同名的成员,在派生类中访问同名成员时屏蔽了基类的同名成员
* 2,在派生类使用基类的同名成员,显示地使用类名限定符:类名::成员
*/
class Base {
public:
int a, b;
};
class Derived : public Base {
public:
int b, c;
};
void func() {
Derived d;
d.a = 1;
d.Base::b = 2;
d.b = 3;
d.c = 4;
}
class A {
public:
int a;
int b;
void printA() {
cout << "父类:b is " << b << endl;
}
void print() {
cout << "父类:b is " << b << endl;
}
protected:
private:
};
class B : public A {
public:
int b;
int c;
void printB() {
cout << "子类:b is " << b << endl;
}
void print() {
cout << "子类:b is " << b << endl;
}
protected:
private:
};
void main() {
B b1;
b1.b = 10;
b1.A::b = 11;
b1.printA();
b1.printB();
cout << "main: b1.b is " << b1.b << " b1.A::b is " << b1.A::b << endl;
b1.print();
b1.B::print();
b1.A::print();
system("pause");
}
C++ 继承遇到同名成员变量和成员函数研究
最新推荐文章于 2022-09-10 23:39:41 发布