7得票7回答
C#中的函数重写

我只是试图通过控制台应用程序来掌握虚函数的概念。我注意到,一旦我覆盖了基类函数,return baseclassname.functionname(parameters) 会自动插入到我的函数体中。为什么会这样呢? class advanc { public virtual int ...

268得票9回答
C++中派生类函数的"virtual"关键字,是否必要?

使用下面给出的结构定义...struct A { virtual void hello() = 0; }; 方法一:struct B : public A { virtual void hello() { ... } }; 方法二:struct B : public A { ...

11得票7回答
C#: 有没有办法在多态中跳过其中一个基类的调用?

class GrandParent { public virtual void Foo() { ... } } class Parent : GrandParent { public override void Foo() { base.Foo(); ...

10得票1回答
虚函数调用的编译器优化

最常用的例子来说明为什么虚拟分派发生在运行时是当无法在编译时确定将创建哪个Derived类时。例如:Base* b = (rand() % 2 == 1 ? new Derived1() : new Derived2()); 或者当它依赖于用户输入时。 假设以上情况都不是,并且在编译时可以完...

45得票4回答
为什么要使用虚函数?

可能是重复问题: 有人能解释C++虚函数吗? 我有一个关于 C++ 虚函数的问题。 为什么以及何时使用虚函数?有人能给我一个虚函数的实时实现或用途吗?

10得票2回答
部分继承重载虚函数集合

我原本以为我理解了继承、虚函数和函数重载,但是现在有一个问题,这些功能之间的相互作用似乎让我很困扰。 假设我有一个简单的基类,其中包含一个重载的虚函数,还有一个从它派生的第二个类: class b { public: virtual int f() { return 1; } ...

29得票6回答
C++带有虚方法的对象大小

我对使用虚函数时对象大小有一些疑问。 1)虚函数class A { public: int a; virtual void v(); } 类 A 的大小为 8 字节,其中包含一个整数 (4 字节) 和一个虚拟指针 (4 字节)。class B: p...

11得票2回答
在Python中将“指向虚函数的指针”作为参数传递

比较以下C++代码:#include <iostream> #include <vector> struct A { virtual void bar(void) { std::cout << "one" << std::endl; } }...

8得票3回答
为什么C++虚函数在链接时未定义?

我在使用C++中的虚函数时遇到了一些麻烦,可能是在构造函数中错误地使用了它们。问题是,在将一个由我编写的组件库链接到我的最终可执行文件时,虚函数被标记为未定义,尽管我已经为其编写了实现并链接。 我有以下类: template<class BufferType, class Conne...

20得票3回答
QWidget keyPressEvent重载

我现在已经尝试了半个世纪,试图在QT中覆盖QWidgets keyPressEvent函数,但它就是不起作用。我必须说我是CPP的新手,但我懂ObjC和标准C。 我的问题看起来像这样:class QSGameBoard : public QWidget { Q_OBJECT public:...