- 博客(11)
- 收藏
- 关注
原创 C++ 类模板份文件编写
一、问题:类模板中成员函数创建时机是在调用阶段,导致分文件编写链接不到。1、直接包含源文件(将主程序中包含的头文件改为源文件.cpp)2、将.h和.cpp中的内容写在一起,将后缀名改为.hpp。运行主程序:(运行结果报错,无法解析外部命令)头文件:person.h (声明类成员函数)person.cpp(定义成员函数)
2023-03-23 13:36:29
261
1
原创 C++中有哪些情况只能初始化列表而不能用赋值
常量只能初始化,不能赋值,所以必须在初始化列表中完成,C++的引用也一定要初始化,所以必须在初始化列表中完成。若没有提供显示初始化,则编译器隐式使用成员类型的默认构造函数,若类没有默认构造函数,则编译器尝试调用默认构造函数会出错。2、父类不含有默认构造函数(当类中存在有参构造函数或拷贝构造函数,系统就不会在提供默认函数)时,需要在子类构造函数中使用初始化列表初始化父类成员变量。基类中存在有参构造的情况: 必须派生类中进行初始化列表构造基类。无参构造的情况:(不需要在派生类中进行初始化列表构造基类)
2023-03-22 21:44:25
502
原创 C++ 类模板的使用规则,及和函数模板的区别
类模板作用:类中的成员,数据类型可以不具体制定,用一个虚拟类型来代表。有指定的类型参数就用指定的类型参数,没有的话就用默认的参数。2、类模板在模板参数列表中可以有默认参数。1、类模板没有自动类型推导的使用方式。类模板与函数模板的区别。
2023-03-19 22:02:43
61
原创 C++ 模板的局限性
以上运行的话并不会调用函数模板,因为函数模板无法识别类是否相等。模板并不是万能的,有些特定数据类型,需要用具体方式特殊实现。解决方法二:利用具体化person版本,具体化优先调用。解决方法一:关系运算符重载。
2023-03-19 21:24:57
61
原创 C++ 普通函数与函数模板调用规则
1、如果函数模板和普通函数都可以调用,优先调用普通函数。4、如果函数模板可以产生更好的匹配,优先调用函数模板。2、可以通过空模板参数列表 强制调用函数模板。3、函数模板可以发生函数重载。普通函数与函数模板调用规则。
2023-03-19 20:51:37
166
原创 C++函数模板基本语法和注意事项
/作用:建立一个通用函数,其函数返回值类型和参数类型可以不具体制定,用一个虚拟的类型来代表。//typename -表示其后面的符号是一种数据类型,可以用class代替。//第一种 自动类型推导,必须推导出一致的数据类型才可以使用。//模板必须要确定出T的数据类型,才可以使用。//>C++另一种编程思想称为泛型编程,主要利用的技术就是模板。//T -通用数据类型,名称可以替换,通常为大写字母。// 模板使用的目的是为了提高复用性,将类型参数化。//>C++提供两种模板机制:函数模板和类模板。
2023-03-19 18:00:29
60
空空如也
(*str==(char)0xA1)&&(*(str+1)==(char)0xA1)
2023-04-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人