pair 操作符 总结 pair 在关联容器中经常被使用,它提供了两个成员变量 first 和 second,由于 pair 是一个 struct,所以其成员变量的属性是 public。 在 pair struct 中提供了构造函数和拷贝构造函数,同时提供了两个最基本的操作 operator== 和 ...
分类:
其他好文 时间:
2020-03-31 23:15:54
阅读次数:
146
零、导读 1.explicit在构造函数中的使用 目的:阻止构造函数被用来隐式类型转换 class A{ public: explicit A(int a=0,int b = 1){} //非隐式 } void f(A c); A a; f(a); //没有问题 f(18); //报错,18不会被转 ...
分类:
编程语言 时间:
2020-03-11 00:58:01
阅读次数:
66
"Aizu 0121 " BFS , hash, "康托展开" 相似题目 "八数码" 把每一种状态,用康托计算出来标记 结构体里面套数组的时候,不能直接pust({a,y}) ,因为没有写拷贝构造函数 ...
分类:
其他好文 时间:
2020-03-09 01:16:50
阅读次数:
66
构造函数可以使用两种方式进行分类: 按参数分为:无参构造和有参构造 按类型分为:普通构造和拷贝构造 class Person { public: //无参构造(也可称为默认构造) Person() { cout << "Person的无参构造" << endl; } //有参构造 Person(in ...
分类:
其他好文 时间:
2020-03-08 13:54:19
阅读次数:
71
emplace_back和push_back是cpp11的新特性之一,都是对vector内添加元素的方法。 区别在于: push_bach(): 首先需要调用构造函数构造一个临时对象,然后调用拷贝构造函数将这个临时对象放入容器中,然后释放临时变量。 emplace_back(): 这个元素原地构造, ...
分类:
其他好文 时间:
2020-03-04 18:57:27
阅读次数:
65
1.拷贝构造函数 Line( const Line &obj); √ //常量引用 Line( Line obj); × 形参复制到实参会调用拷贝构造函数,所以会形成无休止的递归调用从而导致栈溢出。 2.运算符重载 传参类型声明为常量引用。 引用:从形参到实参就不会调用拷贝构造函数,比面无谓消耗,提 ...
分类:
其他好文 时间:
2020-02-28 01:21:41
阅读次数:
67
因为strlen是计算字符串有多少字符的,不包括结束符”\0“,所以加一。如"abc",占四个字节,strlen的值是3 //释放实例自身已有内存 delete[] m_pData; m_pData=NULL; //在删除自身内存以后在重新new一个长度为len+1的字符数组,类似拷贝构造函数 in ...
分类:
其他好文 时间:
2020-02-26 18:40:49
阅读次数:
97
```cpp #include #include #include class Object; typedef std::unique_ptr UniqueObjectPtr; using ObjectPtr = std::shared_ptr; void print(const UniqueObj... ...
分类:
编程语言 时间:
2020-02-24 20:24:28
阅读次数:
73
当定义一个类时,我们显式地或隐式地指定了此类型的对象在拷贝、赋值和销毁时做什么。一个类通过定义三种特殊的成员函数来控制这些操作,分别是 拷贝构造函数 、 拷贝赋值运算符 和 析构函数 。 拷贝构造函数定义了当用同类型的另一个对象初始化新对象时做什么,拷贝赋值运算符定义了将一个对象赋予同类型的另一个对 ...
分类:
编程语言 时间:
2020-02-24 13:23:18
阅读次数:
86
const成员 const成员:被const修饰的成员变量、非静态成员函数 必须类里面初始化 const成员函数 两个同名函数构成了重载 引用类型成员变量必须初始化 拷贝构造函数(copy constructor) 拷贝构造函数是构造函数的一种 当利用已存在的对象创建一个新对象时(类似于拷贝),就会 ...
分类:
其他好文 时间:
2020-02-18 22:07:50
阅读次数:
101