我有一个父类,子类,在这个子类中我定义了一些结构。在这个结构中,我想调用父方法。有可能吗?
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 ++中这样的事情是可能的吗?那怎么实现呢?
答案 0 :(得分:5)
您必须向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。