上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 41 下一页
摘要: 继承与多态 引用有的时候并不能达到多态的效果 问题:c++ primer 第五版说,只有指针和引用调用虚函数时才会发生动态绑定(多态)。实践一下,发现引用有的时候不能发生多态绑定(多态)。 下面的例子,父类是Quote,在Quote里定义了一个虚函数debug,用来打印出各自成员的值。2个子类Bul 阅读全文
posted @ 2018-12-29 23:44 小石王 阅读(1290) 评论(2) 推荐(0) 编辑
摘要: 头文件的血案 不小心在一个头文件里,加了函数的定义,结果导致编译时,提示这个函数被重复定义:( Quote.h mainQuote.cpp 编译方法: 编译结果: shell multiple definition of c++ ifndef __QUOTE_H__ define __QUOTE_H 阅读全文
posted @ 2018-12-28 16:58 小石王 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 重载运算符 类型转换运算符 问题:能不能把一个类型A的对象a,转换成另一个类型B的对象b呢?? 是可以的。这就必须要用类型A的类型转换运算符(conversion operator) 下面的operator int()const{return val;}就是重载了的类型Int的类型转换运算符 注意: 阅读全文
posted @ 2018-12-26 18:03 小石王 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 重载运算符 标准库function的用法 问题:int(int, int)算不算一种比较通用的类型?? 比如函数: int add(int a, int b); 比如lambda:auto mod = \ "" {return a % b}; 比如函数对象类:int operator()(int a 阅读全文
posted @ 2018-12-25 22:44 小石王 阅读(922) 评论(0) 推荐(0) 编辑
摘要: 重载运算符 函数调用运算符 把一个类的对象a,当成函数来使用,比如a(),所以需要重载operator()方法。重载了函数调用运算符的类的对象,就是函数对象了。 还有什么是函数对象呢??? lambda是函数对象 std::bind函数的返回值是函数对象 函数是函数对象 函数指针是函数对象 那函数对 阅读全文
posted @ 2018-12-25 22:27 小石王 阅读(1432) 评论(0) 推荐(0) 编辑
摘要: 重载运算符 关系,下标,递增减,成员访问的重载 为了演示关系,下标,递增减,成员访问的重载,创建了下面2个类。 1,类StrBlob重载了关系,下标运算符 2,类StrBlobPtr重载了递增,抵减,成员访问运算符 1,类StrBlob功能概要:类型与vector,但只能存放string类型的数据。 阅读全文
posted @ 2018-12-25 21:44 小石王 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 重载运算符 ==和!=的重载 问题:假如有一个类似于vector的类,这个类只能存放string,当有2个这个类的对象时,如何比较这2个对象。 自己重载==和!= 代码(重载==,!=) c++ include include include class string_vector{ friend 阅读全文
posted @ 2018-12-19 22:26 小石王 阅读(6115) 评论(0) 推荐(0) 编辑
摘要: 重载运算符 基本概念 问题:对于int,float可以进行算数运算,但是对于一个自定义的类的对象进行算术运算,就不知道具体怎么运算了。 所以有了自定义运算符的概念。 1,自定义运算符其实就是一个以operator开头的函数,它可以是: 一个类的成员函数 普通的非函数 2,有一元运算符,比如++,还有 阅读全文
posted @ 2018-12-16 11:39 小石王 阅读(728) 评论(0) 推荐(0) 编辑
摘要: 拷贝控制 构造函数的问题 问题1:下面①处的代码注释掉后,就编译不过,为什么??? 问题2:但是把②处的也注释掉后,编译就过了,为什么??? 编译错误: 问题1的答案:class test里有个自定义成员data,由于class Int,提供了有参数的构造函数,导致了编译器就不会自动生成默认构造函数 阅读全文
posted @ 2018-12-04 11:28 小石王 阅读(862) 评论(0) 推荐(0) 编辑
摘要: 拷贝控制 右值与const引用 背景:当一个函数的返回值是自定义类型时,调用侧用什么类型接收?? 1,如果自定义类型的拷贝构造函数的参数用const修饰了:可以用下面的方式接收。 2,如果自定义类型的拷贝构造函数的参数没有用const修饰了:必须用下面的方式接收 编译错误: 解释: 第一种条件下,用 阅读全文
posted @ 2018-12-03 23:34 小石王 阅读(1488) 评论(0) 推荐(0) 编辑
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 41 下一页