如何在派生类中调用基类函数?

时间:2015-11-25 10:53:19

标签: c++ class abstract cout

我有一个名为Employee的基类,以及一个派生类StudentEmployee。

Employee类有一个名为getEmployeeName()的函数,它返回一个字符串。

在我的StudentEmployee类中,我有一个名为printInfo()和getPayRate()的函数

并且在printInfo()函数中我收到此语句的错误:

cout << getEmployeeName() << getPayRate() << "";

但是我的&lt;&lt;&lt;&lt;&lt;&lt;运营商。我是否必须在派生类中创建基类的对象以调用基类函数getEmployeeName()?我觉得我应该施展它,但找不到任何帮助我的例子

这是一个简短的版本

    #include<iostream>v
    using namespace std;
    class Base {
    public:
        void setBaseName(string name){
            baseName =name;
        }
        string getBaseName(){
            return baseName;
        }

    private:
        string baseName;
    };

    class Derived :public Base
    {
    public:
        void printInfo(){
            cout << getBaseName(); // I GET ERROR HERE
        }
    private:

    };
    int main (){
        Derived d;
        d.printInfo();
    system("puase");
    return 0;
    }

错误C2679:二进制&#39;&lt;&lt;&# :找不到哪个运算符采用类型&#39; std :: string&#39;的右手操作数(或者没有可接受的转换)

1 个答案:

答案 0 :(得分:0)

basename变量不会使用任何值进行初始化,因此当您调用printinfo()时,函数getbasename()无法返回任何内容。