tlzmw001
tlzmw001
全部文章
C++Prim...
C++Primer 第13章拷贝控制(3)
C++Primer 第15章面向对象设计(14)
俺的笔记(30)
实验记录(3)
数据结构(6)
数据结构与算法之美(1)
归档
标签
去牛客网
登录
/
注册
tlzmw001的博客
全部文章
/ C++Primer 第14章重载与转换
(共9篇)
C++Primer-重载、类型转换与运算符
转换构造函数和类型转换运算符共同定义了类类型转换,也被称为用户定义的转换 类型转换运算符是类的一种特殊成员函数,一般形式为operator type() const,类型转换运算符可以面向任意类型(除了void)进行定义,只要该类型能作为函数的返回类型。因此,不允许转换成函数和数组类型,但是可以转换...
2021-06-14
0
507
C++Primer-函数调用运算符
函数调用运算符必须是成员函数,函数调用运算符可以使类对象像函数一样被调用显示状态,如果类定义了调用运算符,则该类的对象称为函数对象 含有状态的函数对象类定义一个打印string实参类型的类 class PrintString { public: PrintString(ostream &am...
2021-06-13
0
589
C++Primer-成员访问运算符
class StrBlobPtr { public: std::string& operator*() const { auto p = check(curr, "dereference past end"); return...
2021-06-13
0
403
C++Primer-递增和递减运算符
应当同时定义前置版本和后置版本 区分前置和后置运算符普通的重载不能区分这两种情况,因为两者使用同一个符号,变量也相同为了避免上述问题,后置版本接受一个额外的int型实参,当使用后值运算符时,编译器为其提供一个为0的实参。
2021-06-12
0
370
C++Primer-下标运算符
下标运算符通常会定义两个版本,一个返回普通引用,一个是类的常量成员并返回常量引用避免改变值 class StrVec { public: std::string& operator[](std::size_t n) { return eleme...
2021-06-12
0
361
C++Primer-赋值运算符
标准库中除拷贝赋值和移动赋值运算符外,还有花括号赋值运算符 class StrVec { public: StrVec &operator=(std::initializer_list<std::string>); }; StrVec &StrVec::opera...
2021-06-12
0
436
C++Primer-算术和关系运算符
相等运算符注意返回一个bool值如果重载了相等运算符,也应当重载不等运算符,可以使用委托,全部委托给一个运算符进行比较 关系运算符1.定义顺序关系,令其与关联容器中对关键字的要求一致2.若类中还有==,则定义一种关系令其与==一致,特别是如果不等得有<的关系
2021-06-12
0
394
C++Primer-输入和输出运算符
重载输出运算符通常情况下,第一个形参为非常量ostream对象的引用,非常量因为对象会修改,引用因为ostream对象不能拷贝;第二个形参通常为常量的引用,常量为要打印的类类型,引用因为我们不想拷贝实参,常量因为我们只是打印不改变原数据;最后返回ostream形参。 ostream &ope...
2021-06-12
0
469
C++primer-重载基本概念
成员运算符函数的第一个运算对象隐式的绑定到this上,因此显式参数会比运算符的运算对象数少一个。当运算符作用于内置类型的运算对象时,我们无法改变该运算符的含义。只能重载已有的运算符,不能发明新的运算符号。一般不重载取地址运算符和逗号运算符。 选择作为成员还是非成员赋值、下标、调用和成员访问运算符必须...
2021-06-11
0
407