shu*_*jan 4 c++ dev-c++ visual-c++ friend-function
class two;
class one
{
int a;
public:
one()
{
a = 8;
}
friend two;
};
class two
{
public:
two() { }
two(one i)
{
cout << i.a;
}
};
int main()
{
one o;
two t(o);
getch();
}
Run Code Online (Sandbox Code Playgroud)
我从Dev-C++得到这个错误:
a class-key must be used when declaring a friend
Run Code Online (Sandbox Code Playgroud)
但是使用Microsoft Visual C++编译器编译时运行正常.
Arm*_*yan 12
你需要
friend class two;
Run Code Online (Sandbox Code Playgroud)
代替
friend two;
Run Code Online (Sandbox Code Playgroud)
此外,您不需要单独向前声明您的类,因为friend-declaration本身就是一个声明.你甚至可以这样做:
//no forward-declaration of two
class one
{
friend class two;
two* mem;
};
class two{};
Run Code Online (Sandbox Code Playgroud)
你的代码有:
friend two;
Run Code Online (Sandbox Code Playgroud)
应该是:
friend class two;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2812 次 |
| 最近记录: |