一段簡單的C 程式誰能幫我解釋一下

2022-03-03 23:36:34 字數 5522 閱讀 2168

1樓:

一,結果:

constructor1

constructor1

constructor1

constructor1

destructor

constructor2

destructor

constructor3

destructor

//類b不帶形參的建構函式,預設初始化私有變數x,y為0。並輸出constructor1

b(int i) //類b帶有一個形參的建構函式,預設初始化私有變數y為0,通過形參i對x初化。並輸出constructor2

b(int i, int j) //類b帶有兩個形參的建構函式,通過形參i,j來初始化私有變數x和y,並輸出constructor3

~b( ) //類b的解構函式,輸出destructor

void print( ) //類b的成員函式,功能是列印私有變數x和y的值

};void main( )

補充會回答:

ptr=new b[3];

這句在申請三個物件記憶體空間時就是建立了三個物件, 只要是建立了物件,且

沒有自定義初始化的話, 每個物件就預設呼叫預設的建構函式初始化,

即 呼叫b( )

分別對申請的三個物件進行初始化。

所以開始就輸出了三個 「constructor1」 。

2樓:

class b //定義類b

//建構函式1,new這個類的時候自動執行, 這裡的執行有,把x,y值設為零,輸出提示「constructor1」

b(int i) //建構函式2,new這個類的時候自動執行, 這裡的執行有,把x值設為構造帶進來的引數i,y值設為零,輸出提示「constructor2」

b(int i, int j) //建構函式3,new這個類的時候自動執行, 這裡的執行有,把x值設為構造帶進來的引數i,y值設為j,輸出提示「constructor3」

//c++會根據引數個數自動選擇相應的建構函式

~b( ) //析構,類生命週期完成後自動呼叫

void print( ) //成員函式 print 作用輸出 x=值,y=值

};void main( )

結果constructor1

constructor1

constructor1

constructor1

destructor

constructor2

destructor

constructor3

destructor

x=0,y=0

x=5,y=0

x=2,y=3

destructor

destructor

destructor

press any key to continue

這段小程式應該是讓你瞭解到,c++會根據引數個數呼叫相應的建構函式,就是執行時型別識別。

還有類的生命週期一結束,會馬上呼叫其解構函式。但是記住析構是按堆疊,先進後出

下面這個用vc6.0通過 你可以試一下

#include

class b

b(int i)

b(int i,int j)

~b()

void print()

};void main()

3樓:就這樣啦啦啦啦

class b

/*建構函式2,設定x為i,y初值為0 */b(int i)

/*建構函式3,設定x為i,y為j */

b(int i, int j)

/*解構函式,只是輸出一句提示 */

~b( )

/* 輸出x和y的值 */

void print( )

};void main( )

4樓:匿名使用者

constructor1

constructor1

constructor1

constructor1

destructor

constructor2

destructor

constructor3

destructor

x=0, y=0

x=5, y=0

x=2, y=3

destructor

destructor

destructor

class b

b(int i)

b(int i, int j) //這三個是函式的過載就是根據主函式中給的引數不同執行不同的函式。

~b( )

void print( ) //這個是解構函式,是當每一個用這個類建立的物件銷燬時,執行的函式

};void main( )

5樓:匿名使用者

#include

class b

b(int i)

b(int i, int j)

~b( )

void print( )

};void main( )

所以結果為

constructor1

constructor1

constructor1

constructor1

destructor

constructor2

destructor

constructor3

destructor

x=0, y=0

x=5, y=0

x=2, y=3

destructor

destructor

destructor

press any key to continue

【求助】最簡單的c++程式,麻煩大家給我解釋一下

6樓:匿名使用者

// 註釋如下

#include

using namespace std;

// 由於是值傳遞,這個函式裡交換形參a、b不會影響實參的值void swap1(int a,int b)// 由於是傳遞引用,這個函式裡交換形參a、b會影響實參的值// 這裡對a、b的操作相當於直接對實參進行操作

{ int x = 5;

int y = 10;

swap1(x,y);

cout<

7樓:星落流熒

兩個函式都是實現交換兩個值,但是第一個是傳的是值,只是形參會交換不會改變原值本身,所以輸出結果: 5 10

第二個傳的是引用,會改變原值本身,所以輸出: 10 5

8樓:匿名使用者

這個程式目的是:考察按值呼叫和按引用呼叫的區別void swap1(int a,int b)//函式按值呼叫,呼叫函式時進行實參的拷貝,不對實參進行修改,修改的是一個臨時變數,也就是所謂的實參拷貝。

void swap2(int &a,int &b)//是按引用呼叫,是給實參建立一個別名,操作的依然是實參真實資料,所以會起到交換的作用。

程式輸出結構是:

swap1並沒有交換資料,輸出:5 10

swap交換了資料 輸出:10 5

有什麼其他問題可以繼續聯絡我

簡單c++程式,誰幫我分析一下。

9樓:孤狼獵影

con c1; 呼叫預設建構函式con():id('a'),輸出1show(c1);呼叫拷貝建構函式con(con& c):id(c.

getid())輸出3,然後cout<

輸出acon c2('b'); 呼叫預設建構函式con(char id):id(id)輸出2

show(c2);呼叫拷貝建構函式con(con& c):id(c.getid())輸出3,然後cout<

輸出breturn 0;

10樓:匿名使用者

id:('a')

表示id = 'a';

首先con c1

構造了一個類,

執行了預設建構函式con():id('a')輸出1,此時id = 'a';

show(c1);

因為這個是帶引數的void show(con c)這裡產生了一個c1的副本,執行了con(con& c):id(c.getid())

輸出3cout<

這裡輸出a

現在就變成了13a

con c2('b');

執行建構函式

con(char id):id(id)

輸出2,執行show(c2);時又產生了副本,執行了con(con& c):id(c.getid())

輸出3最後輸出c2.id,也就是b

誰能幫我解釋一下這個c++程式

11樓:對床話雨

// 沒有一點註釋,變數名也不是很規範.

// 好不容易看完,應該是一種簡單的有失真壓縮處理,希望採納,謝謝.

#include

#include

#include

void main()

// 提示並接收一個數,存放到變數bf

// (從後面的**來看,這個bf限定了壓縮塊的大小)

printf("enter the no. of blocks\n");

scanf("%d",&bf);

// 提示並接收一個數,存放到變數n

// (這是被壓縮資料的數值個數,這個數應該是有上限的,不能超過10,

// 否則會造成陣列訪問越界)

printf("\n enter the length of page sequence: ");

scanf("%d",&n);

// 根據之前給定的個數接收資料存放到st陣列

printf("\n enter the  page sequence: ");

for(i=0;i

一段簡單的c++程式,大家幫我看一下~

12樓:匿名使用者

首先,我必須說明:函式名就是函式指標,這點請記住。在c/c++中函式的名稱其實就是一個指標變數,用來記錄記憶體中函式的位置。這樣才能呼叫。

結果本來就是8

你先呼叫的7+5 = 12

然後又用20-12 =8

13樓:匿名使用者

n=operation (20,m,minus);你的n的值是通過呼叫minus函式的,所以該句是需要的。如果需要刪除該句,如同上一句一樣,直接呼叫函式subtraction();也就是把n=operation (20,m,minus);改為:

n=operation (20,m,subtraction);就可以刪除了了,用int (*minus)(int ,int ) = subtraction;這句的目的,可以讓讀者看清可以這樣賦值。

誰能幫我翻譯一段海南話,誰能幫我翻譯一段古文

暈,寫的太多錯誤,我也只看了個大槪。翻譯 阿瘦 海南話的常用人綽號 和兄弟去海口解放西路逛街,有個 婦女講 阿叔要帶不?他講 這裡真是 這句學的太差了,看不懂 兄弟講 不要買,那些東西都是不好的,不好看。沒辦法,這能這樣翻譯了 阿瘦和兄弟去海口解放西路逛,有位婦女問 先生要碟子嗎?阿瘦問 這裡真多色...

簡單的C 程式,高手幫我看看,一個簡單的C 程式,高手幫我看看

1 是這樣的。不然你寫cout時要寫成std cout.這個是std這個名稱空間提供的操作 原實現細節在iostream裡面,不就在程式一開始預編譯了麼 include,有興趣你自己開啟看看,意思是 std這個名稱空間裡面的cout 比如說我們講兩個同學叫小王,一個在a班,一個在b班,我們事先宣告這...

誰能幫我寫一段描寫女僕的句子,誰能幫我寫一段關於古代奢華,華麗,的軟轎的句子

白色的小外套,配上白色褶皺裙,裙襬在風中搖曳。漂亮的金色長髮隨風飄動,微顯出飄逸的感覺,櫻花般的嘴脣,紫色的大眼睛。耳朵上的白色耳環閃閃發亮,散發著濃濃的氣息。波浪式的金髮披在肩頭,像魔鬼一樣嚇人 無聊,路過 一絲絲金髮披在肩頭,一雙水汪汪的大藍眼睛,穿著一件美麗的 粉粉的女僕裝!誰能幫我寫一段關於...