“cout”没有命名类型错误

时间:2013-04-06 08:02:34

标签: c++ c++11

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

1 个答案:

答案 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;
  }
};