本文主要是介绍C++多级继承子类访问“爷爷类”同名成员,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
多级继承有以下三种:多重继承、虚拟继承、单重继承
我们知道,若派生类和基类有同名成员,通过派生类访问基类同名成员要加类限定符(详见派生关系中的重名成员的处理(二义性问题)),那么子类访问爷爷类的时候怎么加呢?
答案其实很简单,一样是加类限定符。不过格式是
<子类对象>.<爷爷类>::<同名成员>
而不是
<子类对象>.<爸爸类>.<爷爷类>::<同名成员>
<子类对象>.<爸爸类>::<爷爷类>::<同名成员>
等等,虽然有时候(多重继承时)会遇到“Error:基类‘ClassA不明确’”这样的问题,但是是可以直接运行的。
如有不会提示错误的方法,劳烦告诉我~
下面贴上多重继承情况下访问“爷爷类”同名成员的代码
#include<iostream>
using namespace std;class ClassA{
public:char data = 'A';void print(){ cout << data << endl; }
};class ClassB :public ClassA{
public:char data = 'B';void print(){ cout << data << endl; }
};class ClassC :public ClassA{
public:char data = 'C';void print(){ cout << data << endl; }
};class ClassD :public ClassB, public ClassC{
public:char data = 'D';void print(){ cout << data << endl; }
};void main(){ClassA objA;ClassB objB;ClassC objC;ClassD objD;objD.ClassA::print();// 虽提示错误但运行无误
}
这篇关于C++多级继承子类访问“爷爷类”同名成员的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!