首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以从C++中定义的结构内部调用类方法?

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

Stack Overflow用户
提问于 2015-04-16 10:55:20
回答 1查看 1.1K关注 0票数 1

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

代码语言:javascript
运行
复制
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++中这样的事情可能发生吗?那又如何实现呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-16 11:02:49

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

代码语言:javascript
运行
复制
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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29672588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档