【发布时间】:2021-05-06 12:26:29
【问题描述】:
#include<iostream>
using namespace std;
class base
{
public: void getdata()
{
cout<<"in base"<<endl;
}
};
class derived:public base
{
public: void getdata()
{
cout<<"in derived"<<endl;
}
void base:: getdata()
};
int main()
{
derived d;
d.getdata();
return 0;
}
我收到错误:“无法在 'derived' 中声明成员函数 'base::getdata'”
我想从派生类对象中打印两个函数的内容
【问题讨论】:
-
仅供参考,使用命名空间 std 是一种不好的做法。
-
你想在这里做什么:
void base:: getdata()? -
您可能打算这样做this - 顺便说一句,这里没有任何内容覆盖。
derived::getdata()隐藏base::getdata(). -
void base:: getdata()在同一个作用域内不能有两个同名的相同函数。但是您可以通过d.getdata();和d.base::getdata()访问它们。
标签: c++ function oop overriding