摘要: 14.重载运算与类型转换14.1基本概念1.重载的运算符是具有特殊名字的函数,由operator和需要重载的运算符组成的函数名,该函数同样需要返回类型、参数列表和函数体。且参数列表必须包含类成员或对象,我们不能重载只包含内置类型的运算符,因为他们都是编译器已经定义好了的。2.成员运算符必须参数列表第 阅读全文
posted @ 2018-08-03 10:22 Lucky小黄人^_^ 阅读(193) 评论(0) 推荐(0)
摘要: 13.5动态内存管理类1.某些类需要自己进行内存分配,这些类一般来说必须定义自己的拷贝控制成员来管理分配的内存。2.如果没有可用空间,vector就会重新分配空间,且将已有元素移动(或拷贝,但这里是移动)到空间中,释放旧空间,并添加新元素。 13.6对象移动13.6.1右值引用1.我们可以将一个co 阅读全文
posted @ 2018-08-03 10:20 Lucky小黄人^_^ 阅读(541) 评论(0) 推荐(0)
摘要: 13.2控制拷贝和资源管理1.如果类的每个对象相互独立,不共享除静态成员以外的元素,那么称之为类值的;如果如果类的每个对象不是相互独立,共享了除静态成员以外的元素,那么称之为类指针的。2.大多数赋值运算符组合了析构函数函数拷贝构造函数的工作,赋值运算符还必须考虑自赋值的正确性。3.类指针的类最好是用 阅读全文
posted @ 2018-08-03 10:17 Lucky小黄人^_^ 阅读(112) 评论(0) 推荐(0)
摘要: 13.1.2 拷贝赋值运算符1.拷贝赋值运算符就是重载赋值运算符调用operaotr =;如:Foo& operator = (const Foo&);返回值必须为引用类型2.拷贝赋值运算符会将右侧运算符对象的每个非static成员赋予左侧对象,静态数据成员是公有的无须拷贝3.只有整形常量数据成员才 阅读全文
posted @ 2018-08-03 10:10 Lucky小黄人^_^ 阅读(231) 评论(0) 推荐(0)
摘要: 1.拷贝构造函数也是一个构造函数,用来构造对象,只有在对象定义时起作用,其第一个参数是自身类型的引用,其他任何参数均带有默认值.(如果第一个参数不是引用类型,因为构造拷贝对象时必须调用拷贝构造函数,那么连拷贝构造函数都必须调用拷贝构造函数,结果可想而知,调用永远也不会成功) 2.如果我们没有为一个类 阅读全文
posted @ 2018-08-03 10:06 Lucky小黄人^_^ 阅读(469) 评论(0) 推荐(0)
摘要: 1.拷贝构造函数也是一个构造函数,用来构造对象,只有在对象定义时起作用,其第一个参数是自身类型的引用,其他任何参数均带有默认值.(如果第一个参数不是引用类型,因为构造拷贝对象时必须调用拷贝构造函数,那么连拷贝构造... 阅读全文
posted @ 2018-08-03 09:55 Lucky小黄人^_^ 阅读(141) 评论(0) 推荐(0)
摘要: 12.2 动态数组12.2.1 new 和数组1.分配一个动态数组即是在分配一个new对象时在类型名之后加一对方括号,用来存放数组大小,该数可以是任意表达式、也可以是0,只需是整形、无需是常量。数组分配成功后返回... 阅读全文
posted @ 2018-07-26 16:28 Lucky小黄人^_^ 阅读(117) 评论(0) 推荐(0)
摘要: 12.1.4智能指针和异常1.在块中创建的动态内存,如果是由内置指针来指向这块内存,那么若是在块结束时未delete这个指针,则该内存不会被释放,若在delete之前发生异常,由于还没执行delete操作,内存也... 阅读全文
posted @ 2018-07-26 16:21 Lucky小黄人^_^ 阅读(187) 评论(0) 推荐(0)
摘要: 12.动态内存和智能指针1.智能指针分为两种shared_ptr和unique_ptr,后者独占所指向的对象。智能指针也是模板,使用时要用尖括号指明指向的类型。类似emplace成员,make_shared用其参... 阅读全文
posted @ 2018-07-26 16:14 Lucky小黄人^_^ 阅读(173) 评论(0) 推荐(0)
摘要: 传递给istream& 或 ostream&的实参处理cin,cout外,还可以是fstream或 sstream对象argv[1] = "E:\\C++\\2.txt";argv[2] = "E:\\C++\\... 阅读全文
posted @ 2018-07-21 17:10 Lucky小黄人^_^ 阅读(118) 评论(0) 推荐(0)