随笔分类 - c/c++ tips
摘要:类模板的定义 template<class T1,class T2,…> class 类名{ …… // 类成员的声明与定义 } 其中T1、T2是类型参数 类模板中可以有多个模板参数,包括类型参数和非类型参数 非类型参数是指某种具体的数据类型,在调用模板时只能为其提供用相应类型的常数值。非类型参数是
阅读全文
摘要:c++的函数模板提供了一种泛型的方法去实现某些设计,模板顾名思义,只是提供一种实现的模板,函数模板不是实际的函数,而是编译器用于生成一个或多个函数的 "模具"。在编写函数模板时,不必为形参、返回值或局部变量指定实际类型,而是使用类型形参来指定通用数据类型。当编译器遇到对函数的调用时,它将检查其实参的
阅读全文
摘要:运算符重载是C的一项强大功能。通过重载,可以扩展C运算符的功能,使它们能够操作用户自定义的数据类型,增加程序代码的直观性和可读性。 本章主要介绍 类成员运算符重载与友元运算符重载, 二元运算符与一元运算符重载, 运算符++、--、[]、()重载, this指针与运算符重载及 流运算符<<和>>的重载
阅读全文
摘要:c/c++的移位运算符 在做无符号类型的左移和右移时,空位补0 在做有符号位的正数左移和右移时,依然遵循,空位补0 但是在做有符号的,负数类型的移位运算时,左移依然遵循空位补0,右移则是负数空位补1,正数空位补0 为什么会出现这种情况?因为计算机采用补码形式进行存储,正数的补码是其本身,负数则是按位
阅读全文