这是我的代码:
class Foo
{
public:
Foo(const char*);
};
class Bar
{
public:
Foo bu("adfds");
};
int main()
{
return 0;
}
Foo::Foo(const char* iLoc)
{ }
当我尝试在Foo
类中创建Bar
类时,在尝试传递给构造函数时出现语法错误。为什么会这样?
答案 0 :(得分:3)
我更喜欢这个问题,因为你不必跟踪内存分配。
class Bar
{
private:
Foo bu;
public:
Bar()
: bu("adfds")
{
}
};
答案 1 :(得分:2)
您无法在类声明中初始化bu
。这是你想要的吗?
class Bar
{
public:
Foo *bu;
Bar() {
bu = new Foo("adfds");
}
};
修改强>
正如评论中所指出的,这是一种不用bu
指针的方法:
class Bar : bu("adfds")
{
public:
Foo bu;
};