#pragmaonceclassConfig{private:staticConfig*con;Config(void);Config(constConfig&con);//拷贝构造置为私有public:floatcpu;floatmemory;floatharddisk;~Config(void);//注意声明有static静态。staticConfig*getInstance();voidcreatInstance();//工厂模式声明staticCon..
分类:
其他好文 时间:
2014-08-11 18:13:13
阅读次数:
145
??
拷贝构造
#include
#include
using
namespace
std;
class
mystring
{
public:
char
*s;
public:
mystring()
{
s
=
new
cha...
分类:
其他好文 时间:
2014-08-11 02:57:51
阅读次数:
280
看下面一个表示string对象的类:// 一个很简单的string类class string {public: string(const char *value); ~string(); ... // 没有拷贝构造函数和operator=pr...
分类:
其他好文 时间:
2014-08-09 18:14:08
阅读次数:
186
拷贝构造函数能够使类具有自行赋值本类对象的能力,即可生成一个对象的副本,它只以本类对象的引用作为其唯一的形参,该函数的定义形式如下:class 类名{ public: 类名(形参);//(构造函数) 类名(类名 &对象名);//(拷贝构造函数) ..................
分类:
编程语言 时间:
2014-08-08 17:47:56
阅读次数:
258
以下实现没有考虑线程安全的问题。智能指针:它的一种通用实现方法是采用引用计数的方法。智能指针将一个计数器与类指向的对象相关联,引用计数跟踪共有多少个类对象共享同一指针。 每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计....
分类:
其他好文 时间:
2014-08-08 17:31:36
阅读次数:
262
/*******************拷贝构造函数和赋值运算符重载有以下两个不同之处***************************/1.拷贝构造函数生成新的类对象,而赋值运算符不能。2.由于拷贝构造函数是直接构造一个新的类对象,所以在初始化这个对象之前不用检验源对象是否和新对象相同,而复制...
分类:
其他好文 时间:
2014-08-08 04:16:55
阅读次数:
376
1. 按值传递
什么是按值传递?
当一个函数通过值的方式获取它的参数时,就包含有一个拷贝的动作。编译器知道如何去进行拷贝。如果参数是自定义类型,则我们还需要提供拷贝构造函数,或者赋值运算符来进行深拷贝。然而,拷贝是需要代价的。在我们使用STL容器时,就存在大量的拷贝代价。当按值传递参数时,会生产临时对象,浪费宝贵的CPU以及内存资源。
需要找到一个减少不必要拷贝的方法。移动语义就...
分类:
移动开发 时间:
2014-08-08 02:04:05
阅读次数:
417
主要原理在三、四两条一.拷贝构造函数与赋值操作符class A;A a;A b1(a); //拷贝构造函数的实例A b2 = a; //赋值操作符的实例:二.拷贝构造函数的应用实例1.同一类型的对象显示或隐式初始化一个对象,如下:class A;A a;A b(a);2.作为函数的实参,如下:voi...
分类:
其他好文 时间:
2014-08-08 01:57:15
阅读次数:
232
C++中智能指针可以防止出现野指针、内存泄露等情况,智能指针的类中包含4个函数:构造函数、拷贝构造函数、重载复制操作符、析构函数。构造函数需要对引用计数和指针进行初始化,引用计数初始化为1,拷贝构造函数完成对象之间的拷贝,要注意引用计数的变化和判断两个指针是否指向相同的内存。重载复制操作符,需要判断的情况是左值代表的指针如果引用计数减为0,要释放相应的内存,避免发生内存泄露。析构函数中先判断引用计...
分类:
其他好文 时间:
2014-07-30 01:02:42
阅读次数:
199