关于C++函数返回类型的提问

来源:百度知道 编辑:UC知道 时间:2024/06/21 12:52:28
我定义两个简单的类,class Rulea{
friend class Ruleb;
public:
Ruleb getRuleb(); };

class Ruleb{};
然后在主函数中有
void main(){
Ruleb ruleb;
ruleb=Rulea.getRuleb();}
为什么用VC++编译时出错,函数是不是不可以是类类型?主函数的那句也老是错,怎么改?
请高人指点。
如能解决,可加分。

给出两种方法

代码如下:
class Ruleb{}; //要把这个类的定义放在类Rulea的前面,否则在类Rulea里不能 Ruleb getRuleb(){}这样定义函数
class Rulea
{
friend class Ruleb;
public:
/*static */Ruleb getRuleb()
{
Ruleb r;
return r;
}
};

class Ruleb{};
void main()
{
Ruleb ruleb;
Rulea TT;
/*ruleb=Rulea::getRuleb();*/
ruleb=TT.getRuleb();
}
//注意,要么同时使用Ruleb getRuleb()和ruleb=TT.getRuleb();要么同时使用static Ruleb getRuleb()和ruleb=Rulea::getRuleb();

1.Ruleb getRuleb();这个函数没有定义函数体

直接在后面写
{
Ruleb r;
return r;
}

2. friend class Ruleb 没有必要,这句删掉