#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();}Location g() 怎么理解?一個(gè)函數(shù)可以是一個(gè)類(lèi)嗎?B=g()又是什么意思?為什么一個(gè)函數(shù)可以賦值給一個(gè)類(lèi)對(duì)
2 回答
MMTTMM
TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
Location g()//返回值類(lèi)型為L(zhǎng)ocation的函數(shù)g()
{
Location A(1,2);//一個(gè)新變量A
return A;//返回A
}
慕婉清6462132
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
類(lèi)定義之后就跟一個(gè)變量類(lèi)型很相似的,你把Location g()替換成int g()好理解吧. int g()是返回整數(shù)的函數(shù),Location g() 就是一個(gè)返回對(duì)象的函數(shù),看看函數(shù)體{Location A(1,2);return A;}正式構(gòu)造了一個(gè)對(duì)象,然后將該對(duì)象返回. Location B;B=g(); 是先定義一個(gè)對(duì)象B,而g()返回的也是一個(gè)同類(lèi)對(duì)象,兩個(gè)對(duì)象之間賦值. 將類(lèi)與變量類(lèi)型對(duì)比著想,就容易明白了. 希望對(duì)你有幫助!
添加回答
舉報(bào)
0/150
提交
取消
