繁体   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