创建型模式 3)单例模式 单例模式主要用于只需要一个实例,例如日志系统,一个项目应该只有一份日志。 主要技巧在于: 将构造函数和拷贝构造函数设为私有,所以无法直接通过new来创建对象 提供一个获取唯一实例的接口,这样外部可以通过这个接口创建对象 将该实例设为static,这样就能保证只有一份实例 注 ...
分类:
编程语言 时间:
2019-12-07 00:57:22
阅读次数:
131
算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员 (可以看完结构体和指针再详细了解结构体成员访问符) ...
分类:
其他好文 时间:
2019-12-01 09:25:52
阅读次数:
97
我们一起来学习常用接口string类常见构造:函数名功能说明string()构造空的string类对象,即空字符串string(constchar*s)用C-string来构造string类对象string(size_tn,charc)string类对象中包含n个字符cstring(conststring&s)拷贝构造函数voidTeststring(){strings1;//构造空的st
分类:
其他好文 时间:
2019-11-24 09:44:48
阅读次数:
82
利用操作符重载的练习 === 注意事项: 1.赋值操作符(=)只能重载为成员函数 2.操作符重载不能改变原操作符的优先级(+, , , /) 3.操作符重载不能改变操作符的个数 4.操作符重载不应改变操作符的原有语义(3,4说明操作符重载只是对原有操作符功能的扩展,但是不能改变其本质的含义。比如:+ ...
分类:
其他好文 时间:
2019-11-16 11:06:19
阅读次数:
70
下面是C++中定义的深,浅拷贝 当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数:(1)一个对象以值传递的方式传入函数体 (2)一个对象以值传递的方式从函数返回 ( ...
分类:
编程语言 时间:
2019-11-16 09:16:22
阅读次数:
86
设计一个类,该类只能在堆上创建对象 将类的构造函数私有,拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象。 提供一个静态的成员函数,在该静态成员函数中完成堆对象的创建 注意 在堆和栈上创建对象都会调用构造函数,为了防止在栈上创建对象我们将构造函数私有化。 拷贝构造函数是在栈上创建对象。 1 cla ...
分类:
编程语言 时间:
2019-11-13 01:06:10
阅读次数:
141
vector在push_back时,如果是自定义的数据结构,它会调用这个结果的拷贝构造函数来初始化vector中的存储空间,如果需要用push_back()需要自己实现拷贝构造函数!具体vector中是怎么push_back可以查看stl源码剖析中的具体实现。 如果注释掉test的拷贝构造函数,pu ...
分类:
其他好文 时间:
2019-11-06 16:34:50
阅读次数:
113
一、什么是vector? 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。 二、容器特性 1.顺序序列 顺序容器中的元素按照严格的线性顺序排序。可以 ...
分类:
其他好文 时间:
2019-10-31 00:54:58
阅读次数:
92
string类型访问单个字符 数组范文符是 C/C++内置的操作符。 实质是 数组访问 与 指针运算 。 a[n] <==> *(a+n)<==>*(n+a)<==>n[a] 实验代码: 数组访问操作符([]) 只能通过类的函数进行重载。 重载函数只能使用一个参数。 可以定义多个不同的重载函数。 既 ...
分类:
编程语言 时间:
2019-10-23 23:46:54
阅读次数:
117
1:String类型 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 //初始化方法 6 string s1 = "hello";//默认构造方法 7 string s2(s1);//将s2初始化为s1的一个副本 8 s ...
分类:
其他好文 时间:
2019-10-19 22:16:14
阅读次数:
138