首页 > TAG信息列表 > pure-virtual
c-const限定词从纯虚函数中消失
这个问题已经在这里有了答案: > Top-level const doesn’t influence a function signature 7个 使用gcc版本4.8.2: 我遇到一个问题,当我编译代码时,参数上c – 为什么纯虚函数初始化为0?
我们总是声明一个纯虚函数: virtual void fun () = 0 ; 即,它总是被赋值为0. 我的理解是,这是将此函数的vtable条目初始化为NULL,此处的任何其他值都会导致编译时错误.这种理解是否正确?解决方法:使用原因= 0是Bjarne Stroustrup不认为他可以获得另一个关键字,例如在实现该功能时通你如何在C中声明一个接口?
如何设置代表接口的类?这只是一个抽象的基类吗?解决方法:要通过bradtgmurray扩展答案,您可能希望通过添加虚拟析构函数对接口的纯虚方法列表进行一个例外.这允许您将指针所有权传递给另一方,而不会暴露具体的派生类.析构函数不必执行任何操作,因为接口没有任何具体成员.将函数定义为c – 从.h和.cpp文件定义纯虚函数会产生链接器错误?
我试图为我的所有实验室工作组建一个“框架”,但后来我遇到了令人沮丧的链接器错误,处理纯虚函数的实现. 当我从.cpp文件定义纯虚函数时(如returntype classname :: function(){…..})我得到一个链接器错误,告诉我没有提供纯虚函数的定义.. . 但是,当我简单地将定义放到头文件中时,可以在C中没有纯虚函数的情况下实现抽象类吗?
我想过使用受保护的构造函数,但它无法完全解决目的,因为从它继承的类将能够实例化基类. 至于私有构造函数,派生类也不会被实例化. 因此,任何合适的技术都将受到赞赏.解决方法:目前还不清楚你真正要求的是什么.所以让我试着澄清一些观点: 纯虚函数可以有定义 如果您担心要为基础中的c继承设计问题
在c中我想要一个抽象类型Query的数组,其中包含函数calcScore() 这是一个纯虚函数.我有两个非抽象的类:实现calcScore函数的ConQuery和DisQuery. 为了做到这一点,我定义了这样的数组: vector<Query*> m; 我迭代并调用这个函数: for (vector<Query*>::const_iterator it1 = index.beg模仿Python(纯)虚拟函数,如C#
Python中模拟虚拟和纯虚函数(如C#中)的最佳方法是什么? 目前我使用的架构如下: class AbstractClass(object): '''Abstract class''' def __init__(self): assert False, 'Class cannot be instantiated' def _virtual_init(self): p