virtual-method

    10热度

    3回答

    我有一个类模板,其中一些方法被定义为虚拟的,以使我的类的用户能够在他的派生类中为他们提供实现。请注意,在我的模板类中,有一些使用虚拟类的非虚拟方法(应该返回值的虚拟类在非虚拟类中调用)。 你可以给我一个正确的代码,其中父类的虚拟方法应该返回一个值(但它的实现是在一个子类中提供的)和父类中的虚方法返回的值的简单示例用于该类的其他方法。因为我看到某处(例如:Safely override C++ vi

    1热度

    2回答

    在实现它的类中定义具有与接口方法完全相同的签名的静态方法的优点是什么? class IInterface { public: virtual void fn()=0; } class Impl :IInterface { public: ~Impl(); static void fn(); } Impl::~Impl{ } Impl::fn(

    1热度

    1回答

    我正在使用boost python创建一个绑定到C++库。该库中的许多类都具有接受iterator/const_iterator类型作为参数的虚方法。我并不特别想公开这些类型,但宁愿在接受适当容器的虚拟方法周围创建一些包装。我的问题是,在'默认实现'功能中做这个包装是否安全? 例如 class Test { public: Test(); virtual ~Test();

    4热度

    2回答

    我知道在基类的构造函数中 - 调用虚方法时 - 调用基方法,而不是派生 - 请参阅Calling virtual functions inside constructors。 我的问题与此主题有关。我只是想知道如果我在Derived类的构造函数中调用virtual方法会发生什么 - 但是在构造Base部分之前。我的意思是打电话来评估基类构造函数参数的虚方法,见代码: class Base { p

    6热度

    4回答

    这是一个显示虚拟方法的小代码。 class A { public virtual void F() { Console.WriteLine("A.F"); } } class B: A { public override void F() { Console.WriteLine("B.F"); } } class C: B { new public vi

    4热度

    2回答

    即使当前实例是派生类,我们如何从基类中的另一个方法调用虚方法? 我知道我们可以从派生类中的方法,通过使用base.Method2()调用方法二在的基地类,但我想要做的就是从其他虚拟方法调用它在基地类。可能吗? using System; namespace ConsoleApplication1 { class Program { static void Mai

    10热度

    2回答

    我明白什么是java方法调用,并且已经实践了很多使用它的例子。 我想知道这个概念的实际情况或需求是什么。 如果任何人都可以提供真实世界中使用它的场景,并且如果这个概念不在那里,会发生什么?

    3热度

    1回答

    我想创建一个表示多项式的LinkedList的实现。链接列表将成为“期限”列表。一个术语是Data的一个实现(它是一个带有方法的抽象类:compareTo()和toString())。 Polynomial类有一个名为head的变量,我试图初始化为Term。我的编译器说我“不能声明抽象类型的成员:Term”,但我不认为Term是抽象的,因为它是Data(抽象类)的实现。如果你们可以看看这个,让我知

    2热度

    2回答

    我有一个C++基类,它声明了两个不同的签名的虚拟方法。 只要我重写派生类中的虚拟方法签名之一,编译器(g ++ 4.6.3和g ++ 4.7)就不能再将该方法与同一派生类中的第二个签名进行匹配。 下面的示例代码将无法编译,如果我只定义SPECIALIZE_ONEARG 1。为了得到它的重新编译我还必须定义PASSTHRU_TWOARG 1。使用“中继”的方法,因为效率不理想因为真正的类层次结构的要

    8热度

    6回答

    我有一堆系统,我们打电话给他们A, B, C, D, E, F, G, H, I, J。 它们都有类似的方法和属性。有些包含完全相同的方法和属性,有些可能略有不同,有些可能会有很大差异。现在,我为每个系统都有很多重复的代码。例如,我有一个为每个系统定义的名为GetPropertyInformation()的方法。我试图找出哪一种方法是减少重复的代码或以下方法也许一个最好的办法是不是要走的路: 接口