String类的简单实现:
1、在拷贝构造函数和赋值运算符重载这两个函数中有浅拷贝和深拷贝的问题
2、要对输入输出函数重载
3、赋值运算符重载有两种方式。注意在采用交换实现的时候函数的参数只能是临时变量
class String
{
friend ostream& operator<<(ostream& os, String& s);
friend istream& opera...
分类:
其他好文 时间:
2016-08-23 13:23:36
阅读次数:
159
String
在C++的学习生涯我中发现String类的功能十分强大,所以我们是很有必要模拟实现它的,况且在面试的时候模拟实现一个String类也是面试官经常会考的,但是因为外界因素的限制我们是不可能模拟的和库里的string一致的(C++库里的string功能更强大),所以今天我们只模拟实现string的基本功能-构造函数,拷贝构造函数,析构函数,赋值运算符重载,运算符+=的重载...
分类:
编程语言 时间:
2016-08-21 12:35:35
阅读次数:
241
1、复合赋值操作符:*= /= %= += -= 2、while语句语法 while(booleanExpression) statement 先求booleanExpression(布尔表达式,注意必须放在圆括号中),如果为true,就运行语句。再次求booleanExpression,扔为tru ...
分类:
其他好文 时间:
2016-08-18 21:18:52
阅读次数:
121
copy()
copy_backward()
以上两个对所有容器都适用的
注意:
1, 没有copy_if()算法,可以使用remove_copy_if()算法;
2,复制过程中要逆转元素次序,使用reverse_copy()算法;
3,把容器内所有元素赋值给另一个容器,要使用赋值操作符或者容器的assign()成员函数;
4,复制过程中删除某些元素,使用remove_copy()和...
分类:
编程语言 时间:
2016-08-17 00:14:41
阅读次数:
279
问题描述 看到这个模式,很容易想到小时候看的《西游记》,齐天大圣孙悟空发飙的时候可以通过自己头上的 3 根毛立马复制出来成千上万的孙悟空, 对付小妖怪很管用(数量最重要)。 Prototype 模式也正是提供了自我复制的功能, 就是说新对象的创建可以通过已有对象进行创建。在 C++中,拷贝构造函数( ...
分类:
编程语言 时间:
2016-08-16 00:08:35
阅读次数:
142
浅拷贝就是指两个对象共同拥有同一个值,一个对象改变了该值,也会影响到另一个对象。 深拷贝就是两个对象的值相等,但是互相独立。 构造函数的参数是该类的一个实例。 ...
分类:
编程语言 时间:
2016-08-15 10:05:00
阅读次数:
149
1、赋值操作符的定义 注意:返回值类型必须为引用(一般返回值为*this) 如果不是返回引用,而是直接返回Test,那么从返回形参到实参中间又要继续调用赋值操作符=,这样会形成死循环,导致栈溢出,编译也不能通过 2、赋值操作符的调用 复制构造函数和赋值操作符的区别: 赋值运算符处理两个已有对象,即赋 ...
分类:
其他好文 时间:
2016-08-09 20:32:41
阅读次数:
120
常见问题 Q1. 下面代码的输出结果是( )? A. a a a B. a a a a C. a a D. a Q2. 为什么拷贝构造函数的参数是一个引用,可以不是引用吗? Q3. 什么是深复制?什么是浅复制? 复制构造函数 1. 复制构造函数 只有单个形参,而且该形参是对本类类型对象的引用(常用c ...
分类:
编程语言 时间:
2016-08-09 09:24:19
阅读次数:
152
近日,在书中看到一个关于数据交换函数的源代码,发现挺有意思,具体代码如下: 根据 C 语言异或赋值操作符(^=)的计算规则和异或运算符(^)的运算法则,应按照从右到左的顺序进行计算,具体计算过程演示如下: 从计算过程可以看出,a 和 b 的值的确进行了交换,那我们通过具体程序来进行验算一下: 笔者的 ...
分类:
其他好文 时间:
2016-08-06 20:29:06
阅读次数:
185
了解C++默默编写并且调用哪些函数 一个空类,C++处理过后会默认加上一个复制构造函数,复制赋值操作符和析构函数,但是只有当这些函数被需要被调用的时候才会被C++创建,平时的话一个空类不被使用也就是一个空类了。 编译器生成的copy构造函数用法 默认的这两个函数仅仅是将对象的成员进行简单赋值。 这就 ...
分类:
其他好文 时间:
2016-08-05 08:50:17
阅读次数:
181