拷貝構(gòu)造函數(shù)
其形參是本類的對(duì)象引用,其作用是使一個(gè)已經(jīng)存在的對(duì)象(由拷貝構(gòu)造函數(shù)參數(shù)指定的對(duì)象)去初始化一個(gè)新的同類對(duì)象。
系統(tǒng)默認(rèn)一個(gè)拷貝構(gòu)造函數(shù),
默認(rèn)的拷貝構(gòu)造函數(shù)的功能是把初始值對(duì)象的每個(gè)數(shù)據(jù)成員值都復(fù)制到新建立的對(duì)象中。
class calssname
{ public :
類名(形參表); //構(gòu)造函數(shù)
類名(類名 &對(duì)象名); //拷貝構(gòu)造函數(shù)
};
類名::類名(類名 & 對(duì)象名) //拷貝構(gòu)造函數(shù)的實(shí)現(xiàn)
{ 函數(shù)體
}
例如:
class Point
{ public:
Point(int xx=0,int yy=0) {X=xx; Y=yy; } // 構(gòu)造函數(shù)
Point( Point &P);
int GetX(){retrun x;}
int GetY () {return y}
private:
int X,int Y;
};
Point ::Point (Point &P)
{ X=P.x;
Y=P.y;
}
//構(gòu)造函數(shù)在倉(cāng)健對(duì)象時(shí)被調(diào)用,而拷貝構(gòu)造函數(shù)有三種情況
1。 當(dāng)一個(gè)類的對(duì)象去初始化該類的另一個(gè)對(duì)象時(shí)
int main(void)
{ Point A(1,2);
Point B(A);
cout<<B.GetX()<<endl;
return 0;
}
如果函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)是,進(jìn)行形參和實(shí)參的結(jié)合時(shí)
void F(Point p)
{ cout<<p.GetX();
}
int main()
{ Point A(1,2);
F(A);
return 0;
}
3. 如果函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行完成返回調(diào)用者時(shí)
Point g()
{ Point A(1,2)
return A;
}
int main()
{ Point B;
B=g();
return 0;
}
其形參是本類的對(duì)象引用,其作用是使一個(gè)已經(jīng)存在的對(duì)象(由拷貝構(gòu)造函數(shù)參數(shù)指定的對(duì)象)去初始化一個(gè)新的同類對(duì)象。
系統(tǒng)默認(rèn)一個(gè)拷貝構(gòu)造函數(shù),
默認(rèn)的拷貝構(gòu)造函數(shù)的功能是把初始值對(duì)象的每個(gè)數(shù)據(jù)成員值都復(fù)制到新建立的對(duì)象中。
class calssname
{ public :
類名(形參表); //構(gòu)造函數(shù)
類名(類名 &對(duì)象名); //拷貝構(gòu)造函數(shù)
};
類名::類名(類名 & 對(duì)象名) //拷貝構(gòu)造函數(shù)的實(shí)現(xiàn)
{ 函數(shù)體
}
例如:
class Point
{ public:
Point(int xx=0,int yy=0) {X=xx; Y=yy; } // 構(gòu)造函數(shù)
Point( Point &P);
int GetX(){retrun x;}
int GetY () {return y}
private:
int X,int Y;
};
Point ::Point (Point &P)
{ X=P.x;
Y=P.y;
}
//構(gòu)造函數(shù)在倉(cāng)健對(duì)象時(shí)被調(diào)用,而拷貝構(gòu)造函數(shù)有三種情況
1。 當(dāng)一個(gè)類的對(duì)象去初始化該類的另一個(gè)對(duì)象時(shí)
int main(void)
{ Point A(1,2);
Point B(A);
cout<<B.GetX()<<endl;
return 0;
}
如果函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)是,進(jìn)行形參和實(shí)參的結(jié)合時(shí)
void F(Point p)
{ cout<<p.GetX();
}
int main()
{ Point A(1,2);
F(A);
return 0;
}
3. 如果函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行完成返回調(diào)用者時(shí)
Point g()
{ Point A(1,2)
return A;
}
int main()
{ Point B;
B=g();
return 0;
}