m_pBuffer = new char[size];? 使用new動(dòng)態(tài)申請(qǐng)了size個(gè)char類型大小的空間,如果把char換成類名時(shí),就是申請(qǐng)size個(gè)類名大小的空間。但只要是給類實(shí)例化對(duì)象申請(qǐng)空間,就要調(diào)用類的構(gòu)造函數(shù),而所寫的構(gòu)造函數(shù)如果是
Coordinate(int x , int y );? 不是默認(rèn)構(gòu)造函數(shù),參數(shù)沒有默認(rèn)值,在實(shí)例化對(duì)象時(shí),就必須給賦予x,y值,否則就會(huì)報(bào)錯(cuò),而使用new運(yùn)算符申請(qǐng)多個(gè)內(nèi)存時(shí),無法為每個(gè)對(duì)象都賦初值x,y。那樣就會(huì)報(bào)錯(cuò)。因此就需要將構(gòu)造函數(shù)改為有默認(rèn)值的構(gòu)造函數(shù) Coordinate(int x = 0, int y = 0);? 這樣的話編譯就可以通過了,但每個(gè)對(duì)象的x,y值都是0 .不知道我說明白了沒?
2016-12-24
m_pBuffer = new char[size];? 使用new動(dòng)態(tài)申請(qǐng)了size個(gè)char類型大小的空間,如果把char換成類名時(shí),就是申請(qǐng)size個(gè)類名大小的空間。但只要是給類實(shí)例化對(duì)象申請(qǐng)空間,就要調(diào)用類的構(gòu)造函數(shù),而所寫的構(gòu)造函數(shù)如果是
Coordinate(int x , int y );? 不是默認(rèn)構(gòu)造函數(shù),參數(shù)沒有默認(rèn)值,在實(shí)例化對(duì)象時(shí),就必須給賦予x,y值,否則就會(huì)報(bào)錯(cuò),而使用new運(yùn)算符申請(qǐng)多個(gè)內(nèi)存時(shí),無法為每個(gè)對(duì)象都賦初值x,y。那樣就會(huì)報(bào)錯(cuò)。因此就需要將構(gòu)造函數(shù)改為有默認(rèn)值的構(gòu)造函數(shù) Coordinate(int x = 0, int y = 0);? 這樣的話編譯就可以通過了,但每個(gè)對(duì)象的x,y值都是0 .不知道我說明白了沒?
2016-07-21
不清楚你的問題的意思,創(chuàng)建棧時(shí)首先要為棧分配指定大小內(nèi)存空間,肯定寫在構(gòu)造棧的構(gòu)造函數(shù)里啊