[英]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.