我正在尝试纯虚函数。所以我已经相应地编写了代码。 但是我没有因此而遇到任何问题。我在我的代码中得到“cout没有命名类型”错误,即使我已经包含了正确的头文件和命名空间。 请提出你的建议。
#include<iostream>
using namespace std;
struct S {
virtual void foo();
};
void S::foo() {
// body for the pure virtual function `S::foo`
cout<<"I am S::foo()" <<endl;
}
struct D : S {
cout <<"I am inside D::foo()" <<endl;
};
int main() {
S *ptr;
D d;
ptr=&d;
//ptr->foo();
d.S::foo(); // another static call to `S::foo`
cout <<"Inside main().." <<endl;
return 0;
}
答案 0 :(得分:4)
您尝试使用直接代码定义结构,但看起来您希望在代码周围使用方法:
struct D : S {
cout <<"I am inside D::foo()" <<endl;
};
应该是
struct D : S {
virtual void foo() {
cout <<"I am inside D::foo()" <<endl;
}
};