cout<<a
时,此运算符会更改我的字符串。所以我这样做了:
logic.h
class logic
{
private:
int str;
A a;
public:
...
};
logic.cpp
...
...
cout<<*a;
...
ostream& operator<<(ostream& os, const A& A)
{
int=a.num;
return os;
}
z.h
class Z
{
public:
virtual Z* aa();
...
};
A.H
class A: public Z
{
private:
int num;
public:
virtual Z* aa();
...
};
我收到了这些错误:
'{'标记(
on class A:public Z {
)ISO之前的预期类名 C ++禁止声明'Z'没有类型,'Z'声明为 '虚拟'字段,预期';'在'*'标记之前(在每个虚拟标记上) 功能A)
你能帮助我吗?
答案 0 :(得分:3)
在类定义之后需要一个分号:
class A: public Z
{
private:
int num;
public:
virtual Z* aa();
// ...
}; // <-- SEMICOLON!!1
此外,请Z
A
#include
z.h
确定<{em>} a.h
之前定义的{{1}}是{{1}}。