0

我正在尝试纯虚函数。所以我已经相应地编写了代码。但我不会因此而遇到任何问题。我的代码中出现“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;
}
4

1 回答 1

4

您尝试使用直接代码定义结构,但看起来您想要一个围绕代码的方法:

struct D : S {
  cout <<"I am inside D::foo()" <<endl;
};

应该是

struct D : S {
  virtual void foo() {
    cout <<"I am inside D::foo()" <<endl;
  }
};
于 2013-04-06T08:04:36.577 回答