访问嵌套类构造函数

Accessing nested class constructor

本文关键字:构造函数 嵌套 访问      更新时间:2023-10-16

如何为嵌套类的构造函数编写代码?因为下面的例子给了我错误

foo.h

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

foo.cpp

#include "foo.h"
foo::bar()
{
}

您必须将构造函数显式命名为foo::bar的成员,而不是foo的成员。调整名称如下:

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

由于bar是foo的"派生类",这意味着如果你想访问函数bar(),你需要首先访问class bar。

bar()位于foo::bar::的命名空间中

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

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) {}

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

作为一方,你的语法也有错误。您缺少一个;关于类的关闭}。