【问题标题】: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 函数,所以它不返回任何东西。我更新了代码。

标签: c++ inheritance derived-class base-class


【解决方案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
     }; 
};

【讨论】:

    猜你喜欢
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 2010-09-29
    • 2014-01-12
    • 2020-09-22
    • 1970-01-01
    相关资源
    最近更新 更多