摘要: 重载左移运算符以实现输出自定义类型一般的重载运算符有两种方式1, 使用成员函数重载2, 使用全局函数重载考虑到cout对象应该在左边, 如果使用类的成员函数重载的话, 第一个参数(左边的参数)默认为*this指向的类对象, 在左边不符合要求, 故选择使用全局函数重载运算符语法:ostream &op 阅读全文
posted @ 2020-08-20 19:37 DNoSay 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 运算符重载: 对已有的运算符进行重新定义, 赋予新的功能, 以适应不同的数据类型(多指自定义数据类型)重载方式:1,类成员函数2,全局函数一般的全局函数进行运算符重载要比类成员函数运算符重载多一个参数,因为往往使用非静态成员函数进行运算符重载, 而非静态成员函数隐含的的this指针指向的对象, 往往 阅读全文
posted @ 2020-08-20 18:18 DNoSay 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 友元成员函数: 在类A的内部声明一个属于类B的成员函数, 则该成员函数可以访问类A的私有成员语法:class A;class B { 返回值类型 函数名(参数列表);};class A { friend 返回值类型 B::函数名(参数列表);};返回值类型 B::函数名(参数列表) {函数体}注意事 阅读全文
posted @ 2020-08-20 15:29 DNoSay 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 友元类: 在A类中使用friend关键字声明B类, 则称B类为A类的友元类, 可以在B类内部访问A类的私有成员语法:class A{ friend class B;};inventory n.详细目录;库存;代码示例: #include <iostream> #include <string> us 阅读全文
posted @ 2020-08-20 14:58 DNoSay 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 全局友元函数: 在类内部声明且使用friend关键字修饰, 在类外和函数外定义的全局函数, 可以访问类中的私有成员语法:1, 声明(必须在类内部):friend 返回值类型 函数名(参数列表);2, 定义(在类外)返回值类型 函数名(参数列表) {函数体}quantity n.量,数量;总量;exp 阅读全文
posted @ 2020-08-20 14:29 DNoSay 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 使用to_string函数, 该函数包含在头文件string中 #include <string> using namespace std; struct Goods { string name; double place; string getInfo() { return "name: " + 阅读全文
posted @ 2020-08-20 13:13 DNoSay 阅读(1642) 评论(0) 推荐(0) 编辑
摘要: 常函数和常对象常函数: 在函数参数列表后, '{'前用const关键字修饰的函数, 该函数不能修改成员属性, 除非该成员属性被mutable关键字所修饰语法:返回值类型 函数名(参数列表) const {函数体}mutable adj.易变的;性情不定的;mutable关键字: 用于定义成员变量时修 阅读全文
posted @ 2020-08-20 12:24 DNoSay 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 使用空指针(指向类对象类型的)调用类的成员函数1, 成员函数访问了与*this指向的对象的静态成员属性(即对象的非静态成员属性), 会抛出异常2, 成员函数不访问与*this指向的对象的静态成员属性, 能正常运行为了防止上述1中抛出的异常, 在成员函数中使用以下内存if(this == NULL){ 阅读全文
posted @ 2020-08-20 11:04 DNoSay 阅读(267) 评论(0) 推荐(0) 编辑
摘要: this指针: C++在类的非静态成员函数隐含的指向调用成员函数的当前对象的指针本质:指针常量(不可修改指针指向)作用:1, 解决成员函数参数和类成员变量的名称冲突2, 使用*this即可返回调用函数的对象本身注意事项:1, 欲返回当前对象本身, 成员函数的返回值类型必须是当前对象所属类(包括父类) 阅读全文
posted @ 2020-08-20 10:40 DNoSay 阅读(215) 评论(0) 推荐(0) 编辑