在C++中,有三大函数复制控制(复制构造函数,赋值操作符,析构函数),而在C++11中,加入了移动构造函数,移动赋值操作符。我就斗胆将他们命名为六大函数好了。一、构造函数c++primer中说过:构造函数是特殊的成员函数,只要创建类类型的新对象,都要执行构造函数。构造函数的工作就是保证每个对象的数据...
分类:
移动开发 时间:
2015-06-18 14:54:46
阅读次数:
143
class Test
{
Test& operator= (const Test& t)
{
}
}
这个是我们熟悉的赋值操作符函数的格式,但是该函数为什么非得要返回一个引用呢。
查阅了很多资料感觉这种解释比较靠谱:
Test a,b,c;
a=b=c
这里存在连续赋值,这是符合C++的语法规范的。如果赋值操作符返回一个引用类型...
分类:
编程语言 时间:
2015-06-18 11:33:34
阅读次数:
156
下面举一个简单的例子说明对象之间的拷贝(此例中没有自定义拷贝构造函数,在调用拷贝构造函数的时候,编译器会自动生成一个默认的拷贝构造函数,该构造函数完成对象之间的位拷贝)浅拷贝:#includeusing namespace std;class CExample{private:int a;publi...
分类:
编程语言 时间:
2015-06-18 00:36:53
阅读次数:
190
一旦变量被赋予了一个值,那么就可以用这个变量名来引用这个值。下面的表达式表示将变量x的值和1相加并将结果赋给变量y:
y = x + 1
即计算x加1的值,并将结果赋给变量y。语句
print y
打印y的值。如果下面的一系列语句将出现在脚本中:
x = 1
y = x + 1
print y
那么y的值为2。
我们可以将这3个...
分类:
其他好文 时间:
2015-06-15 09:33:15
阅读次数:
128
C++复制构造函数和赋值符的区别:http://blog.csdn.net/randyjiawenjie/article/details/6666937
拷贝构造函数和赋值符函数:http://www.cnblogs.com/dwdxdy/archive/2012/07/17/2594993.html
!!!!以上这两篇文章讲的比较好,值得细细的去看。
...
分类:
编程语言 时间:
2015-06-14 21:30:49
阅读次数:
122
c++默认的拷贝构造函数是浅拷贝浅拷贝就是对象的数据成员之间的简单赋值,如你设计了一个没有类而没有提供它的复制构造函数,当用该类的一个对象去给令一个对象赋值时所执行的过程就是浅拷贝,如:class A { public: A(int _data) : data(_data){} A(){}priva...
分类:
编程语言 时间:
2015-06-12 09:47:00
阅读次数:
121
定义一个空类class Empty{};默认会生成以下几个函数2. 拷贝构造函数Empty(const Empty& copy){}3. 赋值运算符Empty& operator = (const Empty& copy){}4. 析构函数(非虚)~Empty(){}这些函数只有在第一次使用它们的时...
分类:
其他好文 时间:
2015-06-11 16:24:45
阅读次数:
97
String 类的原型如下class String{ public: String(const char *str=NULL);//构造函数 String(const String &other); //拷贝构造函数 ~String(void); //析构函数 String& operator=(c...
分类:
其他好文 时间:
2015-06-08 00:55:26
阅读次数:
199
重载操作符
重载操作符是一些函数, 其名字为operator后跟着其所定义的操作符符号. 如operator =, operator +, operator * 等等.
操作符函数和普通函数一样, 也是 返回值 + 函数名 + (形参表) , 形参表必须具有与该操作符操作数数目相同的形参(如果操作符是一个成员, 则包括隐式this形参).
赋值操作符
...
分类:
编程语言 时间:
2015-06-07 09:48:44
阅读次数:
210
1、缺省构造函数。
2、缺省拷贝构造函数。
3、 缺省析构函数。
4、缺省赋值运算符。
5、缺省取址运算符。
6、 缺省取址运算符 const。
class A
{
public:
A(){}//缺省构造函数
A(const A&){}//拷贝构造函数
~A(){}//析构函数
A&ope...
分类:
编程语言 时间:
2015-06-07 01:08:16
阅读次数:
201