virtual-method

    21热度

    4回答

    考虑以下标准CRTP例如: #include <iostream> template<class Derived> struct Base { void f() { static_cast<Derived *>(this)->f(); } void g() { static_cast<Derived *>(this)->g(); } }; struct Foo :

    2热度

    3回答

    这个想法如下。我有一个库版本1类(如下所示): class MY_EXPORT MyClass { public: virtual void myMethod(int p1); } 在第2版,类进行了修改,这一点: class MY_EXPORT MyClass { public: virtual void myMethod(int p1); virtu

    3热度

    3回答

    我想写一个允许用户实现某些行为的小型库,以便库可以使用他自己的基础数据结构。在这种特殊情况下(虽然我简化了),我试图定义是这样的: class LibraryClass { virtual std::vector<int>::const_iterator intsBegin() const = 0; virtual std::vector<int>::const_iterato

    2热度

    2回答

    假设我有一个名为libplugin的共享库。在此共享库中,有一类: class Plugin { public: virtual void doStuff(); }; 让我们也假设有一个名为libspecialplugin另一个共享库。它包含以下类和函数: class SpecialPlugin : public Plugin { public:

    2热度

    1回答

    我想用一个虚函数扩展一个抽象基类,并将函数名称保持为虚拟,但在“可能”重写的子函数之前和之后运行代码。 下面是一个例子: 我对事物的基类(接口),可以得出: class IDraw { public: virtual void do_draw(Screen *scr) = 0; }; 我想保持这种接口在子类中,并能够覆盖它, 例如我有一个游戏,其中清洁所述屏幕的一类,绘

    1热度

    1回答

    我创建了基类指针并为它分配了新的派生类。 class Base { public: virtual void f(int); virtual void f(double); virtual void g(int i = 10); }; void Base::f(int) { cout << "Base::f(int)" << endl; }

    3热度

    2回答

    我对类型转换的安全性有一些担忧我设计了一个抽象接口,女巫将由插件导出面向对象的C ABI ,即指向对象的指针和形式为func(void *this, ...)的C风格函数,而不是C++样式的成员函数,然后这些函数将被打包到表示对象实现的结构中。但是,我的一些底层框架使用多个虚拟继承。 简单的例子 class A { public: virtual void doA() }

    -7热度

    1回答

    C#编程语言的问题。 问题:“父类的虚拟方法有其自己的实现主体块”。 我的回答:“假”。 我的回答正确吗?如果不是,请解释我,伙计们。

    1热度

    2回答

    在正偏移量处,VMT存储指向所有用户定义虚拟方法的指针。 我需要编写一些代码来挂钩VMT。 我这样做的方式是获取指向祖先类中的虚拟方法的指针。 比方说:TCustomForm.ShowModal。然后我查找了TCustomForm的VMT中的偏移量。有了这个偏移量,我去TMyForm并改变它的VMT指向我需要的功能。 我想概括一下这个方法,为了做到这一点,我想知道VMT的条目总数,所以我不会搜索结

    0热度

    3回答

    我想实现访问某一类: class A { some properties and methods }; 的问题是有多种状态A可以在与方法需要相应的行为。其中一种方法是: class A { void Method1() { if (A is in state 1) { do something } else if (A is in state 2) { do