簡體   English   中英

C ++如何為另一個類中的定義類分配特定的值

[英]c++ how to assign specific value to defining class in another class

我嘗試將int值傳遞給另一個類中的類的構造函數。 例:

class A
{
public:
    A( int k );
};

class B
{
public:
    B();
    A a(1);    //this show me "error: expected identifier before numeric constant"
};

有沒有辦法做到這一點? 還是我的網站瘋了?

成員只能使用brace-or-equal-initializer在類中進行初始化 以下兩個在語法上都是正確的:

A a{1};
A a = A(1);

實際上,如果A::A(int)不是顯式的,那么您也可以簡單地執行

A a = 1;

有沒有辦法做到這一點?

當然,正確的方法是使用B類的成員初始化列表:

class B
{
public:
    B() : a(1) {}
    A a;
};

還是這是我網站上的瘋子?

不,沒有瘋狂。 直接使用正確的語法。


另一種方法可能是為類A提供默認的構造函數

class A
{
public:
    A() = default;
    A( int k );
};

並在B的構造函數體內進行初始化:

class B
{
public:
    B() {
        a = A(1);
    }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM