访问嵌套的类构造函数

时间:2014-10-19 17:11:56

标签: c++ nested-class

如何为嵌套类的构造函数编写代码?因为以下示例给出了错误

foo.h中

class foo
{
    public:
       class bar
        {
           public:
           bar();
           ~bar();
        }
    private:

}

Foo.cpp中

#include "foo.h"

foo::bar()
{

}

3 个答案:

答案 0 :(得分:3)

您必须将构造函数明确命名为foo::bar的成员,而不是foo的成员。像这样调整名称:

foo::bar::bar() {}
//      ^^^^^

答案 1 :(得分:0)

由于bar是foo的“派生类”,这意味着如果要访问功能栏(),则需要先访问类栏。

bar()位于foo :: bar ::

的命名空间中

您需要尝试foo :: bar :: bar()

答案 2 :(得分:0)

class foo {
public:
    foo() : _bar(this) {}

    class bar {
    public:
        bar(const foo* base);
        ~bar() {}
    private:
        const foo* _base;
    };
private:
    bar _bar;
};

foo::bar::bar(const foo* base) : _base(base) {}

在其中添加一个变量,以显示如何在需要时调用嵌套类中的外部类函数。

作为一方而言,您的语法也有错误。你错过了;关闭课程}。