首頁 > 後端開發 > C++ > C 中的成員變數可以用同名的建構子參數初始化嗎?

C 中的成員變數可以用同名的建構子參數初始化嗎?

Susan Sarandon
發布: 2024-11-13 03:35:02
原創
932 人瀏覽過

Can Member Variables Be Initialized with Constructor Arguments of the Same Name in C  ?

使用與成員變量同名的構造函數參數

原始問題:

是C標準允許使用與建構函數相同的名稱來初始化成員變數參數?

回應:

是的,C 標準允許這種方法。程式碼根據建構函式參數中提供的名稱初始化成員變數。以下範例說明了這一點:

#include <cstdio>
#include <vector>

class Blah {
    std::vector<int> vec;

public:
    Blah(std::vector<int> vec) : vec(vec)
    {}

    void printVec() {
        for (unsigned int i = 0; i < vec.size(); i++)
            printf("%i ", vec.at(i));

        printf("\n");
    }
};
登入後複製

標準參考:

C 標準(§12.6.2/7) 規定「表達式清單中的名稱mem -initializer 的值在mem-initializer在所在的建構子的範圍內進行評估

其他注意事項:

此範例也示範了使用const std::vector &vec 作為參數型別可以避免對原始向量物件進行不必要的複製。

以上是C 中的成員變數可以用同名的建構子參數初始化嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板