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
命令如下:antant install-mavenant jar packageE:\download\spring-framework-3.1.3.RELEASE\build-spring-framework\readme.txtreadme.txt文档很重要,里面有非常重要的命令,如果导入ecl...
分类:
编程语言 时间:
2014-06-18 21:37:52
阅读次数:
203
要永远记得将析构函数声明为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
请注意:在构造和析构期间不要调用virtual函数,因为这类调用从不下降至derived class。
分类:
编程语言 时间:
2014-06-16 13:42:35
阅读次数:
349
请记住:(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
构造过程
为了生成类、结构体、枚举等的实例,而做的准备过程,叫做构造过程。 为了这个过程,我们通常会定义一个方法来完成,这个方法叫做构造器。当然它的逆过程,叫做析构器,用于在实例被释放前做一些清理工作以及一此自定义化的处理。
为存储型属性设置初始值
类和结构体在生成实例那一刻,必须为所有的属性赋以特定的初始值。
要么在定义存储型属性的时候直接给个初始值,否则就必须在构造器里面指定一...
分类:
其他好文 时间:
2014-06-14 17:35:57
阅读次数:
248