我想在类m_foo
的构造函数中调用类A
的成员A
的构造函数。
用m_foo = new Foo()
调用它是不是很麻烦?或者我可以在没有把它放在堆上的情况下调用它吗?
我想传递一个256字节数组的指针,以便Foo对象用指针指向的数据填充其成员数组。
但是,如何调用我在头文件中声明的成员变量的构造函数?
A.hpp
class A{
public
A();
private:
Foo m_foo;
};
A.cpp
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];
};
答案 0 :(得分:6)
使用A
构造函数的成员初始化列表:
A::A() : m_foo(...)
{
}
您可以从
获取构建char*
所需的m_foo
A
构造函数:
A::A(char* p) : m_foo(p) {}
或其他功能:
A::A() : m_foo(GetBuffer()) {}
答案 1 :(得分:2)
如果你不介意将指针传递给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
{
}