c++ - 是否可以从 C++ 中此类中定义的结构内部调用类方法?

标签 c++ class struct

<分区>

我有一个父类、一个子类,在这个子类中我定义了一些结构。在这个结构中,我想调用父方法。可能吗?

class Parent
{
public:
    int foo(int x);
}

class Child : public Parent
{
public:
    struct ChildStruct {
        int x;

        int bar(int y) {
            return GET_CLASS_CHILD->foo(this->x + y);
        }
    };
}

在 C++ 中有这样的可能吗?那怎么实现呢?

最佳答案

您必须向 ChildStruct 传递一个指向所有者类实例的引用或指针:

class Child : public Parent
{
public:
    struct ChildStruct {
        int x;
        Child& owner;

        ChildStruct(Child& owner_) : owner(owner_) {}

        int bar(int y) {
            return owner.foo(this->x + y);
        }
    };
};

也就是说,看起来您真正需要的是 lambda function .

关于c++ - 是否可以从 C++ 中此类中定义的结构内部调用类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29672588/

相关文章:

c++ - 实现嵌套模板化函数

具有 asio get 方法成员的 C++ 对象

C++基础类

c++ - FFmpeg av_read_frame 和最大数据包大小

c++ - 在各种开关情况下初始化变量

C# - 取消绑定(bind)结构 "destruction"上的事件

c - 使用 qsort() 对数组进行排序

c - 使用结构时出错,C

c++ - 在 CPP 中将时间转换为 unix 时间

java - 部分访问类属性