理解1.Singleton模式用来取代全局静态变量。C++通过静态成员变量来实现类实例全局唯一性。2.instance()方法是单件提供的唯一调用入口。要点1.为了防止外界调用产生多个实例,将构造方法、析构方法、拷贝构造方法、赋值重载方法都作为protected。2.instance()方法产生对象...
分类:
编程语言 时间:
2014-08-29 12:38:27
阅读次数:
307
内存是稀缺的资源,哪怕内存一块钱一条!如果在编程中使用不当,再大的内存也会耗光。 一、认识Java的自动垃圾回收 垃圾回收是Java语言的一大特性,方便了编程,是以消耗性能为代价的。而垃圾在这里只无用的对象。而C++是需要程序员自己写析构函数来释放内存的,麻烦,也有可能忘记而导致内存泄露。 Java...
分类:
编程语言 时间:
2014-08-28 11:10:09
阅读次数:
378
前言 析构函数的作用在于完成对象销毁的一些“善后工作”,然而,某些不科学的设计会产生一些问题。 本文将说明其中的一种不科学设计 - "将异常处理机制设定在析构函数中" 会产生的问题,以及解决方案。问题描述 首先,请看一下一段代码: 1 class Widget { 2 public: 3 ...
分类:
其他好文 时间:
2014-08-27 21:52:08
阅读次数:
201
转载:http://blog.chinaunix.net/uid-25544300-id-3236826.html部分修改,感谢博主!在 某些类里声明纯虚析构函数很方便。纯虚函数将产生抽象类——不能实例化的类(即不能创建此类型的对象)。有些时候,你想使一个类成为抽象类,但刚好又没有 任何纯虚函数。怎...
分类:
其他好文 时间:
2014-08-27 15:57:47
阅读次数:
218
1.静态联编,是程序的匹配,连接在编译阶段实现,也称为早期匹配。重载函数使用静态联编。
2.动态联编是指程序联编推迟到运行时进行,所以又称为晚期联编。switch语句和if语句是动态联编的例子。
#include
void go(int num)
{
}
void go(char *str)
{
}
//class
//::在一个类中
class A
{
public:
voi...
分类:
其他好文 时间:
2014-08-27 14:48:28
阅读次数:
212
头文件
/**
* 书本:【ThinkingInC++】
* 功能:带有构造函数和析构函数的Stack
* 时间:2014年8月27日11:13:10
* 作者:cutter_point
*/
#ifndef STACK3_H_INCLUDED
#define STACK3_H_INCLUDED
class Stack
{
struct Link
{
void*...
分类:
编程语言 时间:
2014-08-27 13:05:48
阅读次数:
245
如果要自己定义STL容器的元素类最好满足STL容器对元素的要求 必须要求: 1、Copy构造函数 2、赋值=操作符 3、能够销毁对象的析构函数 另外: 1、可用的缺省构造函数,序列型容器必须,用于初始化元素 2、==操作符定义,用于判断相等 3、 #include #include using n....
分类:
其他好文 时间:
2014-08-26 17:02:16
阅读次数:
201
前言
今天给自己订的任务是将《Effective C++》第二章看完,一口气看下来发现量并不大,这一章剩下的内容都较为简短,来看看今天的条款吧。
条款08:别让异常逃离析构函数
如同条款的字面意思,不要让析构函数中抛出异常,这样会使程序出现不明确行为。
举个例子:有一个Widget的自定义类的vector。
vector v;
当它在呗销毁的时候,它需要销毁掉里面含有的所有Widget,如果里面有10个Widget,在析构第一个元素期间,有个异常抛出,其它九个依旧得销毁,而不是跳过。
...
分类:
编程语言 时间:
2014-08-26 15:28:46
阅读次数:
212
以下是笔者在ubuntu系统下编译运行通过的一些反应c++基础特性的例子,包括类,结构体,构造函数,析构函数,函数的重载,this指针,类的继承,虚函数,函数的覆盖和隐藏等。(由于格式问题代码中的乱码是一些文字描述)/*#include#includeusing namespace std;stru...
分类:
编程语言 时间:
2014-08-26 11:25:06
阅读次数:
316
(转自百度百科)
首先,为了在我们的程序中使用string类型,我们必须包含头文件 。如下:
#include //注意这里不是string.h string.h是C字符串头文件
1.声明一个C++字符串
声明一个字符串变量很简单:
string Str;
这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参...
分类:
编程语言 时间:
2014-08-26 09:54:15
阅读次数:
275