今天我尝试实例化一个内部类,同时将我的外部类传递给它并且我在外部类的命名空间中:我正在使用 Visual Studo 2013。代码如下所示:(观看 ^^)
class Base
{
public:
virtual void foo(){ cout << "foo" };
};
class object
{
class Derived : public Base
{
object& o;
public:
Derived(object& o) : o(o){}
virtual void foo(){ cout << "bar" };
}derived(*this);
// ^^^^^^
};
就我测试而言,继承某些东西的派生类不会影响此示例的任何内容。(仅出于上下文原因,请参见下文)
在这个^^点上,我收到错误:没有合适的默认构造函数可用
Intellisense 警告我,它需要类型规范。我也尝试过传递一个指针(当然我当时也改变了构造器)但同样的反应。对于 protokoll,我现在尝试了很多变体和研究,但我无法为我的问题找到一个明确的答案。
“this”指针在这里不可用吗?我怎么能在这一点上超越自己呢?
对于背景(仅当您感兴趣时):
我试图在应用程序中编写键绑定代码。要将函数传递给键,我使用 KeyFunction 类的“接口”(基类类似于它)。
我现在想给类(对象)声明它自己的 KeyFunction(Derived) 的可能性,更重要的是,用它传递 ressources(object),以使函数可以在它们上工作(因为我只能使用 void 指针,因为它们稍后存储在绑定的数组中)我已经使用其他代码完成了这项任务,但我认为这里发布的时间很长。通过实验,我偶然发现了这个问题。