B=g()又是什么意思?

#include <iostream>
using namespace std;
class Location
{ public :
Location(int xx=0,int yy=0)
{X=xx;Y=yy;cout<<"object constructed."<<endl;}
~Location();
Location(const Location &p );
int GetX()const {return X;}
int GetY() const {return Y;}
private :
int X,Y;
};
Location::~Location()
{ cout<<X<<","<<Y<<"object destroyed."<<endl;
}
Location::Location(const Location &p)
{ X=p.X;Y=p.Y;cout<<"copy constructor called."<<endl;
}
Location g()
{Location A(1,2);return A;}
int main()
{ Location B;B=g();
}

慕莱坞森
浏览 135回答 2
2回答

SMILET

类定义之后就跟一个变量类型很相似的,你把Location g()替换成int g()好理解吧. int g()是返回整数的函数,Location g() 就是一个返回对象的函数,看看函数体{Location A(1,2);return A;}正式构造了一个对象,然后将该对象返回. Location B;B=g(); 是先定义一个对象B,而g()返回的也是一个同类对象,两个对象之间赋值. 将类与变量类型对比着想,就容易明白了. 希望对你有帮助!

素胚勾勒不出你

Location g()//返回值类型为Location的函数g(){Location A(1,2);//一个新变量Areturn A;//返回A}
打开App,查看更多内容
随时随地看视频慕课网APP