c++按引用传递对象

不明白为什么在下面这段程序的最后returnthecat不写成return*thecat我感觉着按引用传递对象,按引用返回cat对象应该往前面加个*号的,还望高手指点#i... 不明白为什么在下面这段程序的最后return thecat
不写成return * thecat
我感觉着按引用传递对象,按引用返回cat对象应该往前面加个*号的,还望高手指点
#include <iostream>
using namespace std;

class cat
{
public:
cat(){cout<<"begin>>>>>>>>>>>"<<endl;}
cat(cat &){cout<<"again!!!!!!!!!!"<<endl;}
~cat(){cout<<"over~~~~~~~~~~~~~~~";}
};

cat *functiontwo(cat *thecat);
int main()
{
cat mao;
functiontwo(&mao);
return 0;
}

cat *functiontwo(cat *thecat)
{
cout<<"2222222222";
return thecat;
}
展开
 我来答
domo5231
2008-08-17 · TA获得超过904个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:133万
展开全部
cat *functiontwo(cat *thecat)
{
cout<<"2222222222";
return thecat;
}
教你一个简单的判断返回类型的办法吧。
请看你返回的是cat *——这是一个cat类型的指针
你返回的东东要能补全它cat *thecat;

联想一下int f(){...}在写返回是应该写return t;——假设t为一个int。运用补全法:int t;和t的声明一样就说明你的返回是正确的。

这方法简单易记,楼主想在cat *thecat的thecat前加上一个*就成了cat **thecat成了指向指针的指针
luosiyong
2008-08-17 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1627万
展开全部
#include <iostream>
using namespace std;

class cat
{
public:
cat(){cout<<"begin>>>>>>>>>>>"<<endl;}
cat(cat &){cout<<"again!!!!!!!!!!"<<endl;}
~cat(){cout<<"over~~~~~~~~~~~~~~~";}
};

cat *functiontwo(cat & thecat); //引用是&,你的写法是传递的指针
int main()
{
cat mao;
functiontwo(mao);
return 0;
}

cat *functiontwo(cat & thecat)
{
cout<<"2222222222";
return & thecat; //取地址,即指针
}

你仔细的理解一下引用和指针吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式