c在類A外部宣告成員變數int A add 0和在類A中宣告成員變數宣告int add 0是不是一樣的有區別麼

時間 2021-06-25 14:42:58

1樓:

1.一般資料成員(變數)在類內定義,在建構函式中初始化,對是否使用初始化列表無要求;

class a

;//初始化列表初始化普通資料成員

private:

int x;

int y;

};或者

class a

;a::a(int a, int b)

2.const資料成員在類內定義,在建構函式中初始化,且只能在建構函式的初始化列表中初始化,如下所示:

class a

;//初始化列表初始化const資料成員

private:

const int num;

int x;

};3.static資料成員在類內宣告,類外定義和初始化,類外定義時省略關鍵字static,如下所示:

class a

;int a::num = 5;//類外定義、初始化,且省略關鍵字static

2樓:匿名使用者

在類a中只能做變數宣告,無法定義。

int add=0;

是錯誤的,只能寫成

int add;

而在類外部只能對static靜態變數進行定義,比如在類a中宣告瞭static int add;

則可以在類外部定義

int a::add=0;

此時會對變數add進行分配記憶體、初始化等操作。

對於a的普通成員變數,只能在a的函式內進行操作。

一個綜合的例子如下:

class a

;int a::add2 =0;

void a::fun()

3樓:烏紅英

不可以的,只能是單個的整形變數。而且,老的編譯器不允許任何在類宣告中的初始化。新的標準也建議放到類的外面初始化。

給個簡單的例子:

[18:43:46@~/c-cpp]$ cat a.cpp#include

class a ;

int a::i = 3;

int main()

[18:44:28@~/c-cpp]$ g++ -wall a.cpp

[18:44:33@~/c-cpp]$

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

4樓:慕容瑩華汪菲

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()

5樓:匿名使用者

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<

6樓:匿名使用者

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

c++中以一個類b作為另一個類a的成員變數時的問題

7樓:匿名使用者

class b

;bai// class b只有一個帶引數du的構造zhi函dao數private:

int m_i;};

class a;

b m_b;};

8樓:匿名使用者

class b

; // class b只有一個帶引數的建構函式private:

int m_i;

};class a

;b m_b;};

9樓:匿名使用者

一個類不能作為另一類的成員,只能將一個類的物件作為另一個類的成員。只能先定義類b,然後再定義類a,類a中將類b的一個物件變數作為其成員。

C 中類怎樣定義,使用,C 中如果要用的類定義在使用之後,該怎樣宣告?

類的定義格式一般地分為說明部分和實現部分。說明部分是用來說明該類中的成員,包含資料成員的說明和成員函式的說明。成員函式是用來對資料成員進行操作的,又稱為 方法 實現部分是用來對成員函式的定義。概括說來,說明部分將告訴使用者 幹什麼 而實現部分是告訴使用者 怎麼幹 類的一般定義格式如下 class 類...

在80C51系統中,外部程式儲存器公用16位地址和8位資料匯流排,為什麼不會衝突

一個機器週期裡面有12個時鐘週期,其中就分時傳送地址和資料,w和 r的使能就是幹這個事的。以前我也沒想明白這個問題。好像p0在做外部儲存器的資料和地址線的同時還可以做普通的io用,關鍵就是注意使能的時機 非常急啊啊啊啊 微控制器四組i o口及其作用 p0可以作普通io口,也可以在讀寫外部儲存器作低8...

在C中類的構造器,與類中的方法是如何區分的

兩位肯定是理解了,但是卻說錯了。另外,樓主說 構造器 我不知道你這說法 看來的,構造方法 建構函式的英文是constructor,如果你直譯,那確實是。而構造器,更多是見於一些設計模式中。如何區分取決於誰來區分。對面對 的程式設計師來說,構造方法不是 沒有型別修飾符 也更不是 沒有修飾符 1.構造方...