class X
{
public:
friend bool Y::ifelse(X&);
private:
int a;
int b;
};
class Y
{
public:
bool ifelse(X& temp)
{
return temp.a > temp.b ? true : false;
}
};
以上是代码,在VS2013当中会报错,提示如下:
改成下面的代码 就能执行了。。vc6编译通过。。
#include <iostream>是可以通过编译,但是为什么在类的内部定义函数就汇报错呢?
而且虽然可以通过编译,但是仍然会有:
2 IntelliSense: 成员 "X::b" (已声明 所在行数:15,所属文件:"xxx.h") 不可访问
1 IntelliSense: 成员 "X::a" (已声明 所在行数:14,所属文件:"xxx.h) 不可访问
这两个IntelliSense提示,这是为什么呢?求解惑。