ICode9

精准搜索请尝试: 精确搜索
  • c-当用非虚拟析构函数“删除”基类时,Clang和GCC会做什么?2019-10-11 04:09:59

    已经有a question询问删除缺少虚拟析构函数的基类的指针的“现实世界”行为,但问题仅限于非常有限的情况(派生类没有具有非平凡析构函数的成员) ,并且可接受的答案只是说,如果不检查每个编译器的行为,就无法知道. ….但这实际上不是很有帮助;知道每个编译器的行为可能都不同,这并不

  • c-缺少vtable通常意味着第一个非内联虚拟成员函数没有定义2019-10-10 17:10:32

    我很确定这个问题是重复的,但是我的代码在这里有所不同,以下是我的代码.它失败,并显示“未定义符号”错误,不确定丢失了什么. class Parent { public : virtual int func () = 0; virtual ~Parent(); }; class Child : public Parent { public : int

  • c – 虚拟继承中的析构函数2019-10-02 20:07:49

    class Base{}; class D1:virtual public Base{}; class D2:virtual public Base{}; class DD:public D1,public D2{}; int main(){ Base *pBase=new DD; delete pBase; } 这导致崩溃,但我修改如下: class Base{ public: virtual ~Base(){}; }; class D1:virtual pu

  • c – 具有虚析构函数的基类的子类中的默认析构函数2019-08-23 14:09:19

    我有一个带有虚拟析构函数的基类A. A有后代B和C,它们使用默认的析构函数.通过指向A的指针删除C的对象是否安全? 更具体地说,请考虑以下示例代码: class A { public: A(){}; virtual ~A() {/* code here */}; }; class B: public A { B() {/* code....*/};

  • c – “删除”是否与多态性一起正常工作?2019-07-29 01:04:37

    参见英文答案 > Virtual destructor and undefined behavior                                    4个 BaseClass * p = new DerivedClass(); delete p; 我知道第二行将调用基类的析构函数,如果它没有虚拟析构函数和派生类的析构函数,如果它

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有