- 论坛徽章:
- 0
|
// 1.h 头文件
class A; //前向声明
class B
{
public:
B();
void print();
protected:
private:
A _a;
};
class A
{
public:
A(int i){_i=i;}
void set_i(int i);
protected:
private:
int _i;
};
// 1.cpp
#include<iostream>
using namespace std;
#include "1.h"
B::B()
:_a(1)
{
}
void B::print()
{
cout<<" cout from B"<<endl;
}
void A::set_i(int i)
{
_i=i;
}
// main.cpp
#include<iostream>
using namespace std;
#include"1.h"
int main()
{
A a(1);
B b;
b.print();
return 0;
}
以上三个文件, 然后使用 命令> g++ 1.cpp main.cpp
会有有一个错误提示:
1.h:10: 错误: 字段 "_a"类型不完全
1.cpp: 5: 错误: 类B ' 没有名为'_a'的字段
1.h:10 错误: 字段_a 类型不完全
初学,在网上也找不到答案, 谢谢
|
|