如何解决错误C2059:语法错误:'string'“

时间:2012-02-03 04:25:44

标签: c++ class syntax compiler-errors

这是我的代码:

class Foo
{
  public:
    Foo(const char*);
};

class Bar
{
  public:
    Foo bu("adfds");
};

int main()
{
    return 0;
}

Foo::Foo(const char* iLoc)
{ }

当我尝试在Foo类中创建Bar类时,在尝试传递给构造函数时出现语法错误。为什么会这样?

2 个答案:

答案 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;
};