草庐IT

抽象代数

全部标签

定义描述交通工具的抽象类Vehicle,并由Vehicle类派生出两种交通工具——飞机类Plane和火车类Train,主函数完成相关的测试。

定义描述交通工具的抽象类Vehicle,并由Vehicle类派生出两种交通工具——飞机类Plane和火车类Train,主函数完成相关的测试。Vehicle类结构说明:Vehicle类的成员函数包括:①公有函数成员floattravelTime(float)是纯虚函数,它的功能是根据旅程距离计算旅程时间。②公有函数成员voidsetSpeed(float)是纯虚函数,它的功能是用于设置交通工具速度。Plane类结构说明:Plane类公有继承自Vehicle类Plane类新增的数据成员包括:①私有数据成员:飞行速度speed(float)。Plane类的函数成员包括:①有参构造函数Plane(fl

c++ - STL 容器的抽象包装器?

我想将一些对象公开为具有STL样式操作可能性(for_each循环、迭代器)的抽象容器,并隐藏容器实现细节。性能问题无关紧要(虚拟调用甚至内存分配,同时复制“通用”迭代器是可以接受的)。我打算用纯虚函数(+容器上的“通用”迭代器)和一个用于STL顺序容器的实现适配器编写一个抽象容器接口(interface)。但也许有用于此目的的有用的现有库?或者这完全是个坏主意? 最佳答案 ThomasBeckerhassomeusefuladvice(typeerasure).您还可以找到Stroustrup'sSCARYpaper有用。

c++ - 将抽象类型作为 Q_PROPERTY 公开给 QML

我在BB10上使用Qt4.8。我为要实现的类定义了一个基接口(interface):classAbstractImageProcessor:publicQObject{public:AbstractImageProcessor(QObject*parent):QObject(parent){}virtualQImageprocess(constQByteArray&data)=0;virtual~AbstractImageProcessor(){}};我希望从QML中使用的这样一个实现如下所示:classWebImageProcessor:publicAbstractImageProc

c++ - 关于抽象工厂和注入(inject)的问题

这与我的其他问题之一类似,但我认为有足够的不同来提出一个新问题。基本上我在写一个用户界面,我的用户界面有可以选择的节点。选择节点时,用户界面以抽象节点基类“INode”结束。由此我通过执行node->getFactory()获得了一个工厂,并且由此我可以为该节点创建适当的对话框或View,因为具体节点返回了正确的工厂(例如factory->createAddDialog(),factory->createView(节点等)。我的问题是首先尝试为该工厂找到进入节点的最佳方式。到目前为止我想到了3种方式:1)创建节点时注入(inject)正确的工厂:AreaNode*node=newAre

c++ - 抽象基类定义

这可以是抽象基类的定义吗:“仅包含纯虚方法,通常用作派生类的接口(interface)规范”或者抽象基类也可以包含其他方法(也是虚拟的) 最佳答案 根据C++标准的定义(§10.4,抽象类,强调我的):Anabstractclassisaclassthatcanbeusedonlyasabaseclassofsomeotherclass;noobjectsofanabstractclasscanbecreatedexceptassubobjectsofaclassderivedfromit.Aclassisabstractifith

c++ - 重载抽象运算符时出现 Clang 链接器错误=

VisualStudio2013编译器可以很好地处理以下代码,但clang5.0和6.2给我一个链接器错误:#includeusingnamespace::std;classIBase{public:virtualIBase&operator=(constIBase&other)=0;};classBase:virtualpublicIBase{public:Base&operator=(constIBase&other)override{constBase&b=dynamic_cast(other);return*this=b;}virtualBase&operator=(const

c++ - 多重继承解决抽象类

假设我有4个类:classI{public:virtualvoidX()=0;};classA:publicvirtualI{public:virtualvoidX(){}};classB:publicI{};classC:publicA,publicB{};I,B和C是抽象的,其中A不是。如果我简单地添加virtual继承I对于B,然后A::X()解决I::X()在C.但是,我无法更改B的来源.我的问题:我能得到A::X()吗?解决I::X对于C无法更改B?我试过声明A和B虚拟到C无济于事。我试图没有冗余代码(例如让C声明X(){A::X();})。有什么巧妙的技巧吗?另外-有几个问

c++ - 如何抽象出数学软件中的整数类型

我正在设计一种数学软件,其算法适用于通用整数类型,例如机器整数或GMP整数。为了性能,人们通常希望使用机器整数,但如果出现溢出,那么人们可能想尝试切换到GMP;理想情况下在运行时。到目前为止,整个程序都是作为整数类型的模板编写的。随着库的增长,痛苦也在增长:编译时间和内存消耗越来越失控。编译时的错误消息用处不大。调试更痛苦。整个代码都在头文件中。我可以想到以下解决方案。重构代码以依赖于通过编译时宏进行类型定义的固定类型。然后制作库的多个拷贝,每个整数类型一个,并在可执行文件中将它们链接在一起。缺点似乎是我需要一个库自身的接口(interface)。简短的问题是:对于几乎整个程序都依赖于

从抽象类Java继承后的访问属性

我无法访问从抽象类继承的混凝土类型的类的字段。在Java中,我创建了一个扩展学生的外部学生*/publicclassExternalStudentextendsStudent{StringcurrentSchool;publicExternalStudent(Stringname,Integerage,StringstudentIdentifier,StringcurrentSchool){super(name,age,studentIdentifier);this.currentSchool=currentSchool;}}学生在哪里publicabstractclassStudent{//

c# - C++/CLI 使用抽象方法从 native C++ 类继承并将其公开给 C#

我一直在谷歌上四处搜索,试图找到一个完整的例子,但无济于事。我有一个C++API,它提供了许多类,这些类包含供开发人员扩展的纯虚拟方法。我试图做的是通过C++/CLI向C#提供此接口(interface)。我已经设法将API编译到C++/CLI库中,但由于我是新手,所以遇到了困难。我知道我需要创建一个包装器来将C++/CLI非托管类暴露给托管.net类,但我还没有找到一个可靠的示例或讨论来说明如何使用抽象的C++执行此操作类(class)。任何人都可以为我指出正确的方向吗?一个完整的示例包括C#测试应用程序,它显示了如何为抽象类创建包装器的端到端。它似乎是一个“哦,你只是做X”的事情,