簡體   English   中英

調用沒有“ new”的成員變量的構造函數

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

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