virtual-functions 相关问题

在面向对象的编程中,虚函数或虚方法是一种函数或方法,其行为可以通过具有相同签名的函数在继承类中重写。这个概念是面向对象编程(OOP)的多态性部分中非常重要的一部分。

如何实现虚拟功能和vtable?

我们都知道C ++中的虚函数是什么,但它们是如何在深层次实现的?可以在运行时修改甚至直接访问vtable吗? vtable是否适用于所有类,...

回答 12 投票 98

为什么我们需要C ++中的虚函数?

我正在学习C ++而我正在进入虚拟功能。根据我的阅读(在书中和在线),虚函数是基类中的函数,您可以在派生类中重写它们。 ...

回答 24 投票 1126

g ++ -fdump-class-hierarchy输出中的第一个(int(*)(...))0 vtable条目是什么?

对于此代码:class B1 {public:virtual void f1(){}}; D级:公共B1 {public:void f1(){}}; int main(){B1 * b1 = new B1(); D * d =新D();返回0;之后......

回答 2 投票 48

如何使用多态管理线程资源? (C ++)

我正在尝试实现多态,其中派生类实现了一个在单独的线程中运行的方法:#include #包括 #包括 上课...

回答 1 投票 0

最终虚拟功能的重点是什么?

维基百科在C ++ 11 final修饰符上有以下示例:struct Base2 {virtual void f()final; }; struct Derived2:Base2 {void f(); //因为虚函数而形成错误...

回答 10 投票 48

虚拟成员在构造函数中调用

我从ReSharper收到一条关于从我的对象构造函数调用虚拟成员的警告。为什么不做这件事?

回答 17 投票 1224

有没有办法检测函数是否被覆盖?

假设我们有一个继承的抽象Base类:class Base {protected:Base(){} virtual~Base(){} virtual void on_event_foo(int){} virtual void ...

回答 2 投票 5

通过虚拟指针访问成员函数的指针

我遇到过文章,他们解释了vptr和vtable。我知道在存储虚函数的类的情况下,对象中的第一个指针是vptr到vtable和vtable的数组......

回答 2 投票 3

带接口和默认实现的C ++继承

我不确定该怎么称为继承方案,但我正在尝试使用具有默认实现的可克隆接口。我有一些问题,但正在获得正确的方案。我......

回答 1 投票 2

链接器错误与虚函数c ++

我不确定这段代码有什么问题,我正在学习Builder模式。示例代码是在Java中,我试图在C ++中编写相同的代码,但我收到了链接器错误。我搜索并阅读了...

回答 2 投票 -2

虚拟赋值运算符C ++

C ++中的赋值运算符可以是虚拟的。为什么需要它?我们可以让其他运营商也虚拟化吗?

回答 6 投票 64

虚函数和std :: function?

请考虑C ++ 17中的以下代码:#include #包括 struct base {base(){std :: cout <<“base :: base”<< std :: endl;} virtual~base(){std :: ...

回答 4 投票 2

安全地覆盖C ++虚函数

我有一个带有虚函数的基类,我想在派生类中重写该函数。有没有办法让编译器检查我在派生类中声明的函数...

回答 8 投票 96

VC ++调试器 - 评估虚函数,CXX0052:错误:成员函数不存在

这是我的代码的简化版本:#include using namespace std;枚举形状{circle,rectangle}; class Shape {public:virtual Shapes getType()const = 0; };班级圈:......

回答 2 投票 3

如何覆盖调用另一个抽象类的Abstract类的虚函数

我有一个关于抽象类和纯虚函数的问题,当我尝试使用抽象类时,我发现纯虚函数返回另一个抽象类的实例,代码......

回答 2 投票 -1

C ++从基类中的非虚函数调用纯虚函数

我知道你可以/不应该在构造函数中调用虚函数,并且不能使用纯虚析构函数。我有两个班,Base和Child。 Base有一个纯虚拟的......

回答 2 投票 0

C ++中工厂模式的运行时错误

我最近从JAVA切换到C ++。我正在尝试实现工厂设计模式。这是我的文件。 Shape.h #pragma一次类Ishape {public:virtual void draw()= 0; ...

回答 1 投票 0

为什么在没有body的情况下调用纯虚方法不会导致链接器错误?

我今天遇到了相当奇怪的情况。在Interface构造函数中直接调用纯虚方法时,我得到一个未定义的引用错误。 class接口{public:virtual void ...

回答 1 投票 2

© www.soinside.com 2019 - 2024. All rights reserved.