已采納回答 / 慕俠2466091
這是一個(gè)很特別的情況。? 理論上是要報(bào)錯(cuò)的,應(yīng)該無法執(zhí)行,編譯階段就報(bào)錯(cuò)。"helloworld" 是字符串常量,它是不允許被修改的。所以你說的“....? 但指向的空間中的數(shù)據(jù)可變” 這句話不對。 字符串常量存放的位置是很特殊的,是只讀的,不允許修改。可以像下面這樣做:char arr[20] = "helloworld";char * const foo = arr;foo[0] += 'c';cout << foo << endl;
2020-09-26
已采納回答 / justyk
其實(shí)沒有區(qū)別,使用一個(gè)和兩個(gè)作用相同,把這幾個(gè)成員函數(shù)和數(shù)據(jù)成員放在一個(gè)public下也是一樣的。寫兩個(gè)時(shí)為了增加代碼的可讀性,區(qū)分?jǐn)?shù)據(jù)成員和成員函數(shù),當(dāng)定義的數(shù)據(jù)成員和成員函數(shù)很多時(shí),它的優(yōu)勢就顯現(xiàn)出來了。
2019-11-13
已采納回答 / 慕尼黑7462800
Array 是我們自己定義類名稱(或稱為數(shù)據(jù)類型),在Array后的&是引用符,兩者加在一起說明后面跟著的函數(shù)返回類型是Array類型的實(shí)例,就如課件中例子顯示的,返回的是*this。
2019-09-29
已采納回答 / 慕瓜5249981
普通對象可以調(diào)用常對象成員函數(shù),常對象只能調(diào)用常成員函數(shù),同時(shí)可以這樣理解,普通對象有讀寫權(quán)限,常成員函數(shù)只有讀權(quán)限,
2019-09-23
已采納回答 / 慕運(yùn)維3124395
1.2均不合法,3存在語法錯(cuò)誤數(shù)組符號代表進(jìn)行一次訪問,1中p[1]代表訪問到了第二個(gè)對象,此時(shí)再用->再次訪問就不合理了;p中存放的地址是第一個(gè)對象的,p+1代表第二個(gè)對象的地址,此時(shí)p+1還未進(jìn)行訪問操作,直接使用.取成員依舊是不合理的;同理p+1代表一個(gè)指針存放第二個(gè)對象的地址,可以進(jìn)行訪問拿到m_x這個(gè)成員,但是p+1應(yīng)該加上小括號,因?yàn)?>的優(yōu)先級高于+;
2019-08-18
已采納回答 / AlexPan0610
視頻中的代碼是 cout << "arr.m_iCount" << arr.getCount() << endl;雖然提示信息寫的是"arr.m_iCount",實(shí)際訪問的方法是arr.getCount()。
2019-08-06
已采納回答 / 我是塵風(fēng)呀
兄弟我把你的代碼復(fù)制下來能跑啊#include & stiostream&rrausing namespace std;class Array{public: Array(int len) { this-&oidlen = len; } ~Array() {}; void setLen(int len) { this-& relen = len; } int getLen() { return len; } Array< printIn...
2019-06-11
已采納回答 / 我是塵風(fēng)呀
Coordinate coorArr[2];這一句的意思是使用默認(rèn)構(gòu)造函數(shù)(不含參數(shù)的)生成兩個(gè)對象。但類沒有構(gòu)造函數(shù)的時(shí)候系統(tǒng)會自動生成一個(gè)無參構(gòu)造函數(shù),也就是默認(rèn)構(gòu)造函數(shù)。但是當(dāng)你自己定義了構(gòu)造函數(shù)了,系統(tǒng)就不會再給你自動生成構(gòu)造函數(shù)。你的類只有你定義了一個(gè)由參構(gòu)造函數(shù),所以你只能用你定義的那個(gè)有參函數(shù)去創(chuàng)建對象例如:Coordinate coor(1,2)這是棧中或Coordinate *co =new Coordinate(1,2)這是堆中。上面那句代碼需要調(diào)用無參構(gòu)造函數(shù),你沒有,所以會報(bào)錯(cuò)創(chuàng)建...
2019-05-29