【发布时间】:2014-01-02 10:23:11
【问题描述】:
考虑以下代码:
----啊.h
class A{
private:
char* mStr;
public:
A(const char* str);
~A();
}
---- A.cpp
A::A(const char* str)
{
mStr = new char[MAX_SIZE];
strncpy(mStr,str,MAX_SIZE);
}
A::~A()
{
}
---- B.h
class B{
private:
A myA;
public:
B();
~B();
}
---- B.cpp
B::B()
{
myA = A("aaa");
}
B::~B()
{
}
现在的问题是编译器抛出错误: 错误:没有匹配的函数调用 'A::A()'
我想避免使用指针,如果可能的话,我希望 myA 在堆栈上。如果我在 b.h 中声明期间传递参数,那么编译器也会抛出错误。创建这样的对象的方法是什么?
【问题讨论】:
标签: c++