草庐IT

virtual-inheritance

全部标签

c++ - 抽象类 : invalid abstract return type for member function ‘virtual...’

在我的程序中我有这样的类层次结构:#include#include#includeusingnamespacestd;classaa;classbb;classroot{public:virtual~root(){}virtualrootadd(constaa&a)const=0;virtualrootadd(constbb&a)const=0;};classaa:publicroot{public:aa(){}aa(constaa&a){}virtualrootadd(constaa&a)const{returnroot(newaa());}virtualrootadd(constb

c++ - friend 类 : inherited classes are not friend as well?

在C++中,我有一个类A,它是类B的友元。我看起来B的继承类不是A类的友元。这是C++的限制还是我的错误?这是一个例子。编译时,“returnnewMemento”行出现错误:Memento::Memento:无法访问在Memento中声明的私有(private)成员。classOriginator;classMemento{friendclassOriginator;Memento(){};intm_Data;public:~Memento(){};};classOriginator{public:virtualMemento*createMemento()=0;};classFoo

c++ - 同名类之间的共享 vtables : call to virtual method crashes when casting to base type

检查下面的更新,我可以重现并需要帮助。我有一个奇怪的崩溃,其中一些方法在除1个地方之外的任何地方都可以正常工作。这是代码:structbase{virtualwchar_t*get()=0;//canbe{returnNULL;}doesn'tmatter};structderived:publicbase{virtualwchar_t*get(){returnSomeData();}};structcontainer{deriveddata;};//thisisapprox.howitisusedinrealprogramvoidoutput(constbase&data){data

c++ - cc1plus : Virtual memory exhausted

我正在尝试在Linux中使用qcc在QNXMomenticsIDE(4.6)中构建一个项目。我未能成功构建过程并出现以下错误:virtualmemoryexhausted:Cannotallocatememory/opt/qnx641/host/linux/x86/usr/lib/gcc/i386-pc-nto-qnx6.4.0/4.3.3/cc1pluserror1项目有一个cpp文件,里面有1.3以上的MLOC。这是一个从大型Matlab/SIMULINK仿真模型自动生成的代码,因此不容易分而治之。很难理解这是qcc编译器的LOC限制还是由于自动生成代码中的编程习惯。我想问:qcc

c++ - 堆栈帧中重复的内联构造函数导致 "pure virtual method called"?

我想知道是否有任何C++专家可以阐明这种奇怪的情况。Box2D物理引擎附带的示例之一是崩溃并显示消息“调用纯虚拟方法”,但仅适用于特定编译器(并且仅在发布版本中)。您可能知道Box2D是一段非常可靠的代码,所以我认为这可能是编译器的问题,特别是考虑到它只发生在这个特定的编译器上。我在Windows7上使用mingw32:>gcc.exe--versiongccversion4.4.0(GCC)以下是Box2D相关部分的精简摘录。您可以在以下位置查看完整的源代码:b2Shape.hb2CircleShape.hb2CircleShape.cppSensorTest.h//baseclas

c++ - "virtual void IBase::Foo"和 "virtual void Foo"之间有什么区别吗?

我使用了VisualAssistXImplementVirtualMethods选项并生成了:classBase:publicIBase{public:Base(void);~Base(void);virtualvoidIBase::Foo();我注意到我可以省略IBase并且程序仍然可以这样编译:virtualvoidFoo();如果这是相同的代码?为什么VisualAssistX插入IBase::?它只是一种提高可读性的“代码风格”吗?谢谢 最佳答案 如果您要从具有冲突虚函数的多个基类派生,这将有助于解决歧义。我怀疑这就是Vis

c++ - 复杂的菱形继承(钻石问题) : C++ virtual inheritance

我有一个看起来像这样的菱形继承(钻石问题):__A/|\|B|\v|/vv\|v\vB2B3C\v/v/B4/\/D我尝试了很多方法来制作最好的虚拟继承来避免重复,但我找不到解决方案。类A包含一个位置。这是一个示例输出:Call:A()positionpointeris:0x2203be8Call:B()Call:B2()positionpointeris:0x2203be8Call:B3()positionpointeris:0x2203be8Call:C()positionpointeris:0x2203a28Call:B4()positionpointeris:0x2203be8

ios - 核心数据 : Inherited entities

在CoreData中存储继承实体的正确方法是什么?假设我有一个Shape实体,它(是|可以是)抽象和相应的Shape类。形状有子实体/子类:圆形、矩形、三角形。我需要将我所有的形状都放在UITableView中(可能在不同的部分,甚至不在)。我应该如何存储所有这些形状?作为Shape实体,然后在获取之后和添加到数据源数组之前将它们转换为具体的Shape子类作为具体的形状实体,然后将它们全部获取并加入一个数组中作为UITableView的数据源我认为第一种方式甚至是不可能的...还有其他方法吗?谢谢! 最佳答案 你需要将shape声明

ios - Objective-C : how to inherit category methods loaded in a parent class?

在我的项目中,我使用了NSObject+Properties.h类别(参见aqtoolkit:https://github.com/AlanQuatermain/aqtoolkit/blob/master/Extensions/NSObject%2BProperties.h)然后我有一个我声明为的类#import#import"NSObject+Properties.h"@interfaceGFDictionaryInitiable:NSObject...然后我有几个GFDictionaryInitiable的子类,例如GFRestaurant:#import#import"GFDic

ios - 键盘扩展 : Is it possible to inherit features and UI from the stock iOS keyboard?

CustomKeyboardExtensions是iOS8中一个强大的新工具,它允许您实现iOS8键盘永远不会具备的键盘功能。不过,原装iOS键盘已经很不错了。作为唯一的iOS键盘,它经过多年的发展,因此具有许多(实现成本高昂的)人们期望从键盘获得的功能。我有兴趣实现几个小键盘功能,但也想保留普通iOS8键盘的主要UI和功能。例如,键盘扩展可以建议表情符号列表,而不是在新的自动完成区域中建议单词列表。Keymoji已经创建了这个键盘,但似乎是手动复制了iOS键盘的外观而不是继承它。在他们的键盘上打字时有许多细微的差别。这创造了一种类似恐怖谷的体验,在与普通iOS键盘非常相似但又不完全相