RAII:(Resource Acquisition Is Initialization),也就是“资源获取就是初始化”,是C++语言的一种管理资源、避免泄漏的惯用法。C++标准保证任何情况下,已构造的对象最终会销毁,即它的析构函数最终会被调用。简单的说,RAII 的做法是使用一个对象,在其构造时获...
分类:
编程语言 时间:
2014-06-28 20:01:21
阅读次数:
298
(一)
先看下面的代码:
string* stringArray = new std::string[100];
...
delete stringArray;
这样的做法是错误的,因为stringArray所含的100个string对象中的99个可能并没有被适当地删除,因为它们的析构函数很可能没有被调用。
(二)
使用new时发生的事情:
(1)内存被分配出来;
(2)针...
分类:
编程语言 时间:
2014-06-19 10:31:16
阅读次数:
224
要永远记得将析构函数声明为virtual---->>
或许你觉得这句话不一定对,但无需质疑的是这句话是很有用的.
查看下面的例子:
#include
#include
using namespace std;
class B{
public:
~B(){
cout<<"base is destroyed!"<<endl;
}
};
class D:public B{
public...
分类:
编程语言 时间:
2014-06-18 12:44:07
阅读次数:
265
1. auto_ptr 的设计动机:函数操作经常依照下列模式进行:获取一些资源执行一些动作释放所获取的资源那么面对这些资源的释放问题就会出现下面的两种情况:一开始获得的资源被绑定于局部对象,那么当函数退出的时候,这些局部对象的析构函数被自动的调用,从而自动释放掉这些资源;一开始获得的资源是通过某种显...
分类:
编程语言 时间:
2014-06-16 13:43:39
阅读次数:
351
【Objects & Class】1、定义一个类。
上述代码中,numberOfSides是实例变量,simpleDescription也是实例方法。2、创建实例,使用实例。
3、init是构造函数,deinit是析构函数: 上图代码中使用self来引用成员变量是为了与局部变量name...
分类:
其他好文 时间:
2014-06-16 00:52:51
阅读次数:
171
请记住:(1)析构函数绝对不要吐出异常。如果一个析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下它们或结束程序。(2)如果客户需要对某个操作函数运行期间的异常作出反应,那么class应该提供一个普通函数(而非在析构函数中)执行该操作。
分类:
编程语言 时间:
2014-06-15 12:48:58
阅读次数:
171
程序代码:
#include
#include
using namespace std;
class String//定义String类
{
public:
String( );//默认构造函数
String(char *s);//构造函数
String(String &str);//构造函数
~String();//析构函数
void displ...
分类:
其他好文 时间:
2014-06-15 07:59:07
阅读次数:
250
请记住:(1)polymorphic(带多态性质的)base classes应该声明一个virtual析构函数。如果class声明一个virtual函数,它就应该拥有一个virtual析构函数。(2)class的设计目的如果不是作为base classes使用,或不是为了具备多态,就不应该声明vir...
分类:
编程语言 时间:
2014-06-14 20:19:05
阅读次数:
221
类中的魔术方法PHP魔术方法指的是在某些时刻会自动被调用的内置函数,它们以两个连续的下划线开头。类中的魔术方法__construct()类的构造函数,用于初始化对象,在对象实例化时自动运行__destruct()析构函数,用于在php运行终止时,释放对象所占用的内存。析构函数是php的垃圾..
分类:
Web程序 时间:
2014-06-10 22:40:12
阅读次数:
342
1.赋值运算符
先以赋值运算符引入后面要说的运算符重载,上一节说了构造函数、拷贝构造函数;一个类要想进行更好的控制,需要定义自己的构造函数、拷贝构造函数、析构函数、当然,还有赋值运算符。常说的三大函数就是指拷贝、赋值、析构。
如果一个类不定义自己的赋值运算符,会自己生成一个默认的赋值运算操作,这个默认的赋值运算满足一般类的需求。但是当类的功能、作用逐渐完善时,就...
分类:
编程语言 时间:
2014-06-10 10:50:06
阅读次数:
235