0

我有个问题。我有一个类逻辑,带有一个字符串和一个对象。我希望当我cout<<a在逻辑类中编写时,该运算符会更改我的字符串。所以我这样做了:

逻辑.h

class logic
{
private:
int str;
A a;
public:
...
};

逻辑.cpp

...
...
cout<<*a;
...

ostream& operator<<(ostream& os, const A& A)
{
    int=a.num;
    return os;
}

zh

class Z
{
public:
virtual Z* aa();
...
};

class A: public Z
{
private:
int num;
public:
virtual Z* aa();
...
};

我得到了这些错误:

'{' token () 之前的预期类名on class A:public Z {ISO C++ 禁止声明没有类型的'Z','Z' 声明为'虚拟'字段,预期';' 在“*”标记之前(在 A 中的每个虚函数上)

你能帮助我吗?

4

1 回答 1

3

类定义后需要一个分号:

class A: public Z
{
private:
  int num;
  public:
  virtual Z* aa();
  // ...
}; // <-- SEMICOLON!!1

另外,请确保Z在定义之前 A定义,通过#includeing z.hin a.h

于 2012-05-25T18:41:45.280 回答