virtual-functions 相关问题

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

继承如何与友元类一起工作?

我知道这个主题有很多答案,但我不明白为什么我的代码能正常工作: 类打印机; 结构基础{ 虚空 foo1() = 0; 虚空 foo2() = 0; }; Derived1 类:...

回答 2 投票 0

使用赋值将 C++ 对象复制到堆会导致虚函数调用出现段错误

我有一个带有虚函数的 C++ 类。如果我使用 = 将它复制到我有 malloc 的内存中,然后调用一个虚拟函数,我会得到一个分段错误。 #包括 班级问候...

回答 1 投票 0

初始化派生类虚拟函数返回的内联静态变量的最佳方法。

原本我把m_damage作为基类Projectile中的一个类成员,在每个派生类的初始化列表中赋值,并在基类中设置了一个getter函数。但是后来...

回答 1 投票 0

如何像编译器一样得到每个虚拟函数索引?

有没有什么插件或工具可以读取一个.h文件(或者干脆修改Intellisense本身),然后吐出每个函数和它的虚拟函数表索引? 有一种模式,我还没有 ...

回答 4 投票 4

在继承类中使用覆盖方法时的循环依赖性

我有以下情况: class GenericObject{ virtual Attribute* getAttribute(){.}。} class PlaneObject : public GenericObject{ Attribute1* getAttribute()override{.}。}

回答 1 投票 2

在C++中,是否可以在超类中设置一个方法,当每个子类调用该方法时,返回一个shared_ptr给该子类?

我希望一个超类的所有子类都能执行类似的动作。所以我想我可以在超类中有一个方法来实现。这个动作需要发送一个自身的副本(或shared_ptr到)作为 ...

回答 1 投票 0

继承、覆盖和虚拟函数,避免重复代码

我有三个类,A、B、C,B和C是从A派生出来的,B和C都需要实现一个方法F,B.F()中的代码是C.F()的子集。是不是把A.F()声明为一个虚拟函数......。

回答 1 投票 0

如何理解这段C++代码中的动态绑定?

这是我的代码 我需要帮助使这个动态绑定工作。#include #include using namespace std; class Shape { protected: double x,y; public: void ...

回答 2 投票 -1

类中的虚拟布尔函数参数不起作用

我在一个类(材料)中创建了一个虚拟布尔函数,并创建了一个超类(扩散),该超类定义了函数的主体(scatter())。问题出在此函数的参数中,因为...

回答 2 投票 0

我听不懂动态绑定。请帮助我修复此代码?

这是我的代码。我需要帮助使此动态绑定工作。 #include #include 使用命名空间std;类Shape {保护:double x,y; public:void ...

回答 2 投票 0

私有虚拟方法的用途是什么? [重复]

#include class A {public:virtual void foo(){std :: cout <

回答 3 投票 1

如何基于事件在c ++中初始化类?

我的程序以用户提到的特定方式执行某些任务。完全有三种方法可以完成任务。问题是,尽管需要执行相同的工作,但这三种方式还是需要...

回答 1 投票 0

具有基本类,抽象类和派生类的C ++程序,在主函数中使用所有相关数据和方法

问题说:定义一个类Record,该类Record存储与旋律(艺术家,标题,持续时间)相关的数据。抽象类(播放列表)包含指向记录数组的指针作为私有变量。 ...

回答 1 投票 -2

此示例在C ++中使用虚拟继承吗?

我可以这样做吗? A类{public:virtual void aFoo()= 0; }; B类:虚拟公共A {public:虚拟void aFoo(){...}}; D类:公共A {}; C类:公共B,虚拟公共D {} ...

回答 1 投票 1

生成的同名函数的vtable函数顺序反转

[如果使用Visual Studio 2019,我将使用两个具有相同名称但参数不同的虚拟方法编译此C ++代码:struct MyStruct {virtual void foo(float)= 0;虚拟void foo(...

回答 1 投票 0

XY从X和Y继承。将XY *转换为X *,然后转换为Y *,然后调用Y的函数会导致调用X的函数

#include struct X {virtual void x()= 0; };结构Y {虚拟void y()= 0; };结构XY:X,Y {void x()覆盖{std :: cout <

回答 2 投票 0

C ++-更改类以使用虚函数

我正在努力提高效率,我该如何重写Enemy类以使用继承和虚函数?包括任何新的子类。敌人的类别{public:int type; // 0 = ...

回答 1 投票 0

Eclipse:找到虚拟函数的实现的更好方法是什么?

Eclipse:找到虚拟功能实现的更好方法是什么?我现在使用“搜索”来查看具有虚拟函数名称的每个位置。显然这是一个非常...

回答 3 投票 3

“使用继承和纯虚函数时出现“未定义的引用”错误

当我制作矩形类型的对象并说未定义的引用时,它将产生错误。请解决。我可能在做一些错误,因为我在虚函数中的概念非常模糊#include

回答 1 投票 0

如何检测虚拟方法是否在c#中重复[重复]

是否可以确定虚拟方法是否已被覆盖:类ABase {public void DoSomething(object p){p.Process(); if(/ *已实现DoSomethingExtra * /)...

回答 5 投票 12

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