我们先定义一个房地产类 class HomeForSale{} 我们认为一个房地产应该是独一无二的,所以不希望他被拷贝或者赋值。所以我们希望下面的语句是错误的,编译器应该不予通过 int main() { HomeForSale h1; HomeForSale h2; HomeForSale h3( ...
分类:
编程语言 时间:
2021-06-24 18:14:54
阅读次数:
0
#一个空类,编辑器会实现几个默认函数 (有的说法是4个,有的说法是6个) 一个空类,会有一个默认占位大小,sizeof的结果是1 sizeof(A) > 0 是因为标准规定完整对象的大小为正数。 四个默认函数 构造函数 析构函数 拷贝构造函数 赋值运算符重载函数 下面这两个没有被提及 取地址运算符重 ...
分类:
编程语言 时间:
2021-04-06 14:52:14
阅读次数:
0
第一部分连接https://blog.51cto.com/14232799/2447326二.String的模拟实现在第一步之后紧接着的就该是模拟实现部分,这一部分主要是体现自己对第一部分的掌握情况。强烈推荐和我一样在学习String的朋友们自己动手实现一下。因为在面试中,面试官总喜欢让我们自己来模拟实现string类。自己来实现String最主要是实现String类的构造、拷贝构造、赋值运算符重
分类:
编程语言 时间:
2019-11-03 14:25:09
阅读次数:
90
= default default的由来 C++有一类特殊的成员函数:构造函数、析构函数、赋值运算符重载函数,负责类的构造、初始化、拷贝赋值、销毁。在调用类的特殊成员函数,而类内没有声明该函数时,编译器会为我们自动生成一个默认的函数,如: 在实例化一个类的对象时,一定会调用这个类的某个构造函数,在上 ...
分类:
编程语言 时间:
2019-09-13 19:51:06
阅读次数:
102
重载赋值运算符(=),用于创建一个对象,比如拷贝构造函数。 运行结果: exbot@ubuntu:~/wangqinghe/C++/20190809$ g++ evaluate.cpp -o evaluate exbot@ubuntu:~/wangqinghe/C++/20190809$ ./eva ...
分类:
其他好文 时间:
2019-08-10 19:03:19
阅读次数:
90
部分参考地址https://blog.csdn.net/yanglingwell/article/details/56011576 auto_ptr是c++标准库里的智能指针,但是具有以下几个明显的缺陷,使用时要注意 1.就是所谓的控制权转移,下面是模拟代码 在赋值运算符重载和拷贝构造函数中将资源转 ...
分类:
其他好文 时间:
2018-06-09 13:28:29
阅读次数:
218
Ⅱ.参数 一般地,赋值运算符重载函数的参数是函数所在类的const类型的引用(如上面例1),加const是因为: ①我们不希望在这个函数中对用来进行赋值的“原版”做任何修改。 ②加上const,对于const的和非const的实参,函数就能接受;如果不加,就只能接受非const的实参。 用引用是因为 ...
分类:
编程语言 时间:
2018-03-10 15:52:14
阅读次数:
184
拷贝构造器 由己存在的对象,创建新对象。也就是说新对象,不由构造器来构造,而是由拷贝构造器来完成。拷贝构造器的格式是固定的。 规则: 1 系统提供默认的拷贝构造器。一经实现,不复存在。 2 系统提供的时等位拷贝,也就是所谓的浅浅的拷贝。 3 要实现深拷贝,必须要自定义。 4 浅拷贝,会导致内存重析构 ...
分类:
编程语言 时间:
2018-03-09 00:29:55
阅读次数:
215
class string{ public: string(const char *str=NULL); string(const string& str); //copy构造函数的参数为什么是引用呢? 我相信大家都懂的! string& operator=(const string & str); ...
分类:
编程语言 时间:
2017-10-04 14:29:59
阅读次数:
192