摘要:
14.8函数调用运算符"()"1.函数调用运算符必须是成员函数,一个类可以定义多个不同版本的调用运算符,但是他们相互之间应该在参数数量或返回类型上有所区别。定义了调用运算符的类的对象称之为“函数对象”。此对象类似于函数名。2. for_each只接受一元谓词 如:for_each(vs.begin, 阅读全文
posted @ 2018-08-03 10:23
Lucky小黄人^_^
阅读(2338)
评论(0)
推荐(0)
摘要:
14.重载运算与类型转换14.1基本概念1.重载的运算符是具有特殊名字的函数,由operator和需要重载的运算符组成的函数名,该函数同样需要返回类型、参数列表和函数体。且参数列表必须包含类成员或对象,我们不能重载只包含内置类型的运算符,因为他们都是编译器已经定义好了的。2.成员运算符必须参数列表第 阅读全文
posted @ 2018-08-03 10:22
Lucky小黄人^_^
阅读(192)
评论(0)
推荐(0)
摘要:
13.5动态内存管理类1.某些类需要自己进行内存分配,这些类一般来说必须定义自己的拷贝控制成员来管理分配的内存。2.如果没有可用空间,vector就会重新分配空间,且将已有元素移动(或拷贝,但这里是移动)到空间中,释放旧空间,并添加新元素。 13.6对象移动13.6.1右值引用1.我们可以将一个co 阅读全文
posted @ 2018-08-03 10:20
Lucky小黄人^_^
阅读(539)
评论(0)
推荐(0)
摘要:
13.2控制拷贝和资源管理1.如果类的每个对象相互独立,不共享除静态成员以外的元素,那么称之为类值的;如果如果类的每个对象不是相互独立,共享了除静态成员以外的元素,那么称之为类指针的。2.大多数赋值运算符组合了析构函数函数拷贝构造函数的工作,赋值运算符还必须考虑自赋值的正确性。3.类指针的类最好是用 阅读全文
posted @ 2018-08-03 10:17
Lucky小黄人^_^
阅读(111)
评论(0)
推荐(0)
摘要:
13.1.2 拷贝赋值运算符1.拷贝赋值运算符就是重载赋值运算符调用operaotr =;如:Foo& operator = (const Foo&);返回值必须为引用类型2.拷贝赋值运算符会将右侧运算符对象的每个非static成员赋予左侧对象,静态数据成员是公有的无须拷贝3.只有整形常量数据成员才 阅读全文
posted @ 2018-08-03 10:10
Lucky小黄人^_^
阅读(227)
评论(0)
推荐(0)
摘要:
1.拷贝构造函数也是一个构造函数,用来构造对象,只有在对象定义时起作用,其第一个参数是自身类型的引用,其他任何参数均带有默认值.(如果第一个参数不是引用类型,因为构造拷贝对象时必须调用拷贝构造函数,那么连拷贝构造函数都必须调用拷贝构造函数,结果可想而知,调用永远也不会成功) 2.如果我们没有为一个类 阅读全文
posted @ 2018-08-03 10:06
Lucky小黄人^_^
阅读(468)
评论(0)
推荐(0)
摘要:
1.拷贝构造函数也是一个构造函数,用来构造对象,只有在对象定义时起作用,其第一个参数是自身类型的引用,其他任何参数均带有默认值.(如果第一个参数不是引用类型,因为构造拷贝对象时必须调用拷贝构造函数,那么连拷贝构造... 阅读全文
posted @ 2018-08-03 09:55
Lucky小黄人^_^
阅读(140)
评论(0)
推荐(0)