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