码迷,mamicode.com
首页 >  
搜索关键字:析构函数    ( 1864个结果
C++之类析构函数为什么是虚函数
请说明下列代码的输出,并解释原因。#includeclass A{public: virtual ~A();};A::~A(){ printf("delete A\n");}class B : public A{public: ~B();};B::~B(){ printf("...
分类:编程语言   时间:2014-07-18 20:03:10    阅读次数:281
C++基类一定要写虚函数!!!
这是个提醒,算是吧!如果详细原理过程,可能会有一个大篇幅。但这里不想多加赘述,只说说它的破坏力!最近写了个图像处理框架,要做个基类来handle众多子类,写之前一直申称:要注意内存管理,写好析构函数。谁知最后还是偏偏忘记了将基类析构函数virtual化,结果在操控基类释放内存的一段程序中,发现基类释...
分类:编程语言   时间:2014-07-18 12:03:57    阅读次数:261
虚函数的使用 以及虚函数与重载的关系, 空虚函数的作用,纯虚函数->抽象类,基类虚析构函数使释放对象更彻底
为了访问公有派生类的特定成员,可以通过讲基类指针显示转换为派生类指针。也可以将基类的非静态成员函数定义为虚函数(在函数前加上virtual) 1 #include 2 using namespace std; 3 4 class base{ 5 public: 6 /*virtual*/ ...
分类:其他好文   时间:2014-07-17 18:04:41    阅读次数:300
cocos2dx引用计数
一个类,new出来或者create出来,引用计数是1,如果引用计数为0,就会调用析构函数如果delete 这个类的指针,也会调用析构函数。如果一个类A的指针被多个类持有的时候,让A继承自Ref,然后每个类持有A的引用时,retain一下,不需要的时候release一下CC_SAFE_RELEASE_...
分类:其他好文   时间:2014-07-16 18:39:23    阅读次数:233
C++异常以及异常与析构函数
1. 抛出异常1.1 抛出异常(也称为抛弃异常)即检测是否产生异常,在C++中,其采用throw语句来实现,如果检测到产生异常,则抛出异常。 该语句的格式为: throw 表达式;如果在try语句块的程序段中(包括在其中调用的函数)发现了异常,且抛弃了该异常,则这个异常就可以被try语句块后的某个c...
分类:编程语言   时间:2014-07-16 15:20:46    阅读次数:238
【足迹C++primer】45、拷贝控制示例
拷贝控制示例 那么接下来尽情欣赏这个案例吧!!! /** * 功能:拷贝控制示例 * 时间:2014年7月14日10:57:39 * 作者:cutter_point */ #include #include #include #include using namespace std; class Folder; /** Message类 */ class Message { fr...
分类:编程语言   时间:2014-07-14 17:39:36    阅读次数:293
【足迹C++primer】44、交换操作
交换操作 class HasPtr { friend void fun2(); friend void swap(HasPtr&, HasPtr&); public: // HasPtr()=default; HasPtr(const string &s=string()):ps(new string(s)), i(0){} //对ps指向的stri...
分类:编程语言   时间:2014-07-14 17:18:06    阅读次数:314
【足迹C++primer】43、拷贝控制和资源管理
拷贝控制和资源管理 13.2.1行为像值的类 *定义一个拷贝构造函数,完成string的拷贝,而不是拷贝指针 *定义一个析构函数来释放string *定义一个拷贝赋值运算符来释放对象当前的string,并从右侧运算对象拷贝string class HasPtr { public: HasPtr(const string &s=string()):ps(new ...
分类:编程语言   时间:2014-07-13 13:42:44    阅读次数:214
【足迹C++primer】42、拷贝、赋值与销毁(1)
拷贝、赋值与销毁(1) 13.1.1拷贝构造函数 /************************************** 13.1.1拷贝构造函数 **************************************/ class Foo1 { public: Foo1(); //默认构造函数 Foo1(const Foo1&); ...
分类:编程语言   时间:2014-07-13 00:10:38    阅读次数:379
Effective C++ Item 36 绝不重新定义继承而来的 non-virtual 函数
经验:绝对不要重新定义继承而来的 non-virtual 函数 --> Item 7 "为多态基类声明 virtual 析构函数" 是本条款的特例 示例: class B{ public: void mf(); //... }; class D: public B{ public: void mf(); // 遮掩了B::mf,Item 33 名称遮掩规则 } D x; B *pB = &x; D *pD = &x; pB->mf(); // 调用 B::mf pD->mf(); // 调用 ...
分类:编程语言   时间:2014-07-12 19:09:10    阅读次数:234
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!