Write the execution results of constructor
寫出建構子的執行結果
請回答下列有關 C++程式的問題:(每小題 10 分,共 20 分)
如果執行起來,請問執行的螢幕輸出為何?
請解釋每一行輸出是由那個物件在那個時間點前後(請參考程式所標示的時間點
1, 2 ,3 ,4 ,5)印出的?
#include "car.h"
#include <iostream>
using namespace std ;
Car::Car() { cout << "Car is constructed" << endl ;}
Car::~Car() { cout << "Car is destroyed!" << endl ;}
//----------------------------------------------------
Car honda ;
1:main() {
2: Car bmw ;
3: Car *camery = new Car() ;
4: honda.color = 1 ;
5: camery.color = 100 ;
6:}
答案
chatgpt回答
這是一段C++程式碼,其中定義了一個名為`Car`的類別。接著,在`main`函數中創建了幾個`Car`物件,並對這些物件執行了一些操作。程式碼執行時會輸出相應的訊息,根據你提供的時間點1、2、3、4、5,我們可以來解釋輸出:
1. `Car is constructed` 這是`honda`物件的建構子函數執行的結果,因為`honda`是在程式一開始就創建的。
2. `Car is constructed` 這是`bmw`物件的建構子函數執行的結果,因為`bmw`是在`main`函數中宣告時創建的。
3. `Car is constructed` 這是`camery`物件的建構子函數執行的結果,因為`camery`是使用`new`運算子在`main`函數中動態分配記憶體而創建的。
4. 沒有明確指出`color`成員是哪個物件的成員。可能是`honda`物件,但在程式碼中,未顯示`color`成員的定義和賦值。該行可能需要額外的程式碼,以確保`color`是`Car`類別的成員,或者需要指明該成員屬於哪個物件。
5. `camery`物件的`color`成員被設定為100。這個操作將`camery`物件的`color`成員設定為100。
總結:程式輸出的結果是建構和解構不同`Car`物件時相應的訊息,以及`color`成員的設定。
Comments
Post a Comment