如何在具有相同函数名的派生类中调用基类的函数[重复]
Posted
技术标签:
【中文标题】如何在具有相同函数名的派生类中调用基类的函数[重复]【英文标题】:How do you call a function of a base class inside a derived class with same function names [duplicate] 【发布时间】:2020-03-22 11:35:56 【问题描述】:我试图在派生类中调用与基类中存在的同名的函数。该函数只是打印类元素。 例如:
class A // Base Class
public:
string a;
int b;
A(); //Default Constructor
A(string x,int y):a(x),b(y) //Parametrized Constructor
~A(); //Destructor
void printInfo()
cout << a << endl;
cout << b << endl;
;
;
class B:public A // Derived Class
public:
string c;
B(); //Default Constructor
B(string z):c(z) //Parametrized Constructor
~B(); //Destructor
void printInfo()
cout << a << endl;
//I am trying to call printInfo of A inside this function
;
;
所以在输出中,当我创建B
的对象(比如说B example;
)并尝试使用B 类的printInfo()
成员函数(例如:example.printInfo();
)时,我会先打印c然后是 a 和 b。此外,它不限于 2 个类,而是 5 个以上具有共同 printInfo()
成员函数的类。我如何做到这一点?
【问题讨论】:
您的printInfo
需要返回类型。然后你就做A::printInfo()
…
@MichaelKenzel 抱歉,我的成员函数的类型就不说了。这是一个void
函数,所以它不返回任何东西。我更新了代码。
【参考方案1】:
//我试图在这个函数内部调用A的printInfo
class B:public A // Derived Class
public:
string c;
B(); //Default Constructor
B(string z):c(z) //Parametrized Constructor
~B(); //Destructor
printInfo()
cout << a << endl;
A::printInfo(); //<-- call base class version
;
;
【讨论】:
以上是关于如何在具有相同函数名的派生类中调用基类的函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章