首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 類別成員函數與建構函數初始化差異:為什麼非建構函數需回傳型別

     編輯:程式設計綜合問答

問題說明

建構函數可以初始化成員變數,但將建構函數改為一般成員函數 re() 卻會報錯,而 setPoint() 可以賦值。

差異說明

  • 建構函數:函數名必須與類別同名,沒有回傳型別(連 void 都不能寫),主要用於物件初始化。
  • 一般成員函數:必須指定回傳型別,若不回傳值請使用 void。
  • setPoint() 不是建構函數,但可以在函數內部給成員變數賦值,這屬於「賦值」而非「初始化」。

範例

class Rectangle {
public:
    Rectangle(int w, int h) { width = w; height = h; }  // 建構函數
    void setPoint(int w, int h) { width = w; height = h; } // 一般成員函數,需 void
    // re(int w, int h) { ... } // 錯誤:缺少回傳型別
private:
    int width, height;
};





  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved