學習C類時,遇到的常成員為題,求解AAinti

2021-03-04 09:00:27 字數 1858 閱讀 9754

1樓:匿名使用者

a::a(int i):a(i),r(a) {}

上面這句話的意思是說:定義建構函式a(int i),初始化類中的成員變數a=i;r=a;

2樓:匿名使用者

這段**寫的很好呀?有什麼問題嗎?

c++ class a {private int x ;public a(int i =0):x(0) {} a(int i =0):x(i)

3樓:慕容瑩華汪菲

a a(1);輸出1,這個沒什麼解釋的,主要是看為什麼b b(2,3);會輸出203。

b(int i,int j):a(i)這一句用i初始化基類a,輸出2;

b的資料成員a沒有顯式初始化,用預設的a(int i=0)初始化a,輸出0;

cout<

using namespace std;

class a

};class b: public a

};int main()

4樓:匿名使用者

a a(1)輸出1

b b(2,3)執行b的建構函式

第一步執行public b(int i ,int j):a(i)中的a(i)(先執行父類的建構函式)輸出2

再生成b的成員變數private: a a;輸出0再執行cout<

5樓:匿名使用者

怎麼可以有兩個引數一樣的建構函式a(int),會報錯的吧

c++ 若定義類a:class a { public: a(); a(int x); … };

6樓:匿名使用者

a a(4) //這一定義,呼叫類a的賦值建構函式a(int x) 一次

a b[3] //相當於定義了型別為a物件的陣列回,其元素個數答為3,即呼叫三次類a的預設建構函式a()

a *p[2] //定義了乙個型別為a*的陣列,即指向a類物件的指標陣列,並未產生類a的物件,不呼叫建構函式

滿意請採納。

7樓:匿名使用者

a a(4) 呼叫有參建構函式1次;

a b[3] 建立a陣列,呼叫無參構造3次;

a *p[2] 不會呼叫建構函式。

一共呼叫建構函式4次。

8樓:灰灰不吃羊

4次是對的,建立a的時候還呼叫了一次預設的建構函式,儘管什麼都不做,但是初始化工作是必須完成的。然後呼叫三次方法,會自動執行三次建構函式。

9樓:匿名使用者

p是指標陣列,並沒有賦值為實體,故呼叫0次,b陣列含三個類,每個類呼叫一次,a為乙個類,只呼叫一次,所以總共3+1=4次

c++物件導向程式設計第五章第5題求解

10樓:匿名使用者

(1)b1.i 正確因為i是a類的公有成員,可以繼承到子類b

b1.j b1.k 錯誤。因為j為保護成員,k為私有成員,雖然被繼承了,但不能夠訪問,正如a1.j,a1.k也是錯誤的。這樣呼叫只能呼叫公有成員

(2)都可以,在b類裡面,a類非私有成員都可以給b的成員函式使用,因為都被繼承了過來

(3)跟第二個類似,非私有的都可以使用。因此i,j可以使用。

(4)c1.i是對的,其他都是錯的

(5)公有就可以了。f2不行

(6)非私有的都可以,因此全部都行

樓主問的問題,其實掌握兩條定理就好了。

(1)類裡面能呼叫該類或基類的非私有成員變數或成員函式。

(2)類外物件能呼叫該類或基類的公有成員變數或成員函式。

C 類成員的定義

定義私有可以使資料得到有效的保護,同時亦不會對該類以外的其餘內容帶來影響,程式模組之間的相互作用 耦合性 被降到最小。全部public當然可以 只是有的時候類裡有一些只有自己用得著的變數,也public的話,呼叫類的時候就得花不少時間精力去慢慢找你要呼叫的成員了,如果一些成員在類執行時不應該被改變的...

C 運算子過載中過載為類的成員函式和過載為類的友元函式

友元函式 bai 具有與du類成員函式相同訪問zhi權利的 非dao成員函式 他可以訪問類專的私有和保護成員屬 通過該類物件 物件指標或其引用。簡單且一般的說 運算子過載為類的成員函式,他的引數個數會比 該運算子的操作符 少一,而運算子過載為友元函式時,他的引數與其操作個數是相同的。友員函式是指來在...

c 語言中類中的靜態資料成員為什麼必須在類體外初始化

可以通過以下幾個例子更形象的說明這個問題 test.cpp include class a int main 編譯以上 會出現 對 a a 未定義的引用 錯誤。這是因為靜態成員變數a未定義,也就是還沒有分配記憶體,顯然是不可以訪問的。再看如下例子 test.cpp include class a i...