copy_constructor復(fù)制構(gòu)造函數(shù)2

#include<iostream>

成都創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元孝昌做網(wǎng)站,已為上家服務(wù),為孝昌各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575

#include<string.h>

using namespace std;

class name{

public:

name(char *pn);

~name();

name::name(const name& n);

protected:

char *pname;

int size;

};

name::name(char *pn){

cout << "constructing" << pn << endl;

pname = new char[strlen(pn) + 1];

if (pname != 0)

strcpy_s(pname, strlen(pn) + 1, pn);

size = strlen(pn);

}

name::~name(){

cout << "Destructing" << pname << endl;

pname[0] = '\0';

delete[]pname;

size = 0;

}

name::name(const name& n){//拷貝構(gòu)造函數(shù)。

cout << "call copy_constructor" << endl;

int size = n.size+1;

pname = new char[size ];//為其臨時對象申請個內(nèi)存。讓臨時對象的指針指向它。

//防止釋放臨時對象時把原來的對象的指針?biāo)缚臻g給弄亂

strcpy_s(pname, size, n.pname);//兩個參數(shù)不好辦,用三個參數(shù)。

}

void main(){

name Obj1("NoName");

cout << "strlen(\"NoName\")="<< strlen("NoName") << endl;// 轉(zhuǎn)義 \"

name Obj2 = Obj1;

system("pause");

}

網(wǎng)頁標(biāo)題:copy_constructor復(fù)制構(gòu)造函數(shù)2
分享路徑:http://bm7419.com/article20/phddco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、ChatGPT外貿(mào)建站、網(wǎng)站收錄、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)