![](/img/trans.png)
[英]From within a constructor - conditionally call constructor overloads for member variable
[英]Call constructor of a member variable without 'new'
我想打電話給會員的構造m_foo
類的A
在類的構造函數A
。 用m_foo = new Foo()
調用它是否必要? 還是可以不將其放在堆上就調用它? 我想將指針傳遞給256字節的數組,以便Foo對象用指針指向的數據填充其成員數組。 但是,如何調用在頭文件中聲明的成員變量的構造函數?
丙型肝炎
class A{
public
A();
private:
Foo m_foo;
};
丙型肝炎
A::A()
{
//How to call constructor of class Foo here?
}
Foo.hpp
class Foo()
{
Foo(char* p)
{
memcpy(m_Array, p, sizeof(m_Array)/sizeof(m_Array[0]));
}
private:
char m_Array[256];
};
將成員初始化列表用於A
構造函數:
A::A() : m_foo(...)
{
}
您可以從獲取構建m_foo
所需的char*
:
A
構造函數:
A::A(char* p) : m_foo(p) {}
或其他功能:
A::A() : m_foo(GetBuffer()) {}
如果您不介意將指針傳遞給A的構造函數,則可能是您想要的:
class A
{
public:
A(const char* p);
private:
Foo m_foo;
};
A::A(const char* p) : m_foo(p) // <- calls Foo's ctor here
{
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.