03 2022 档案
摘要:p332 需要引入头函数 <cstdlib> <ctime> rand()函数将一种算法用于一个初始种子值来获得随机数;这些数实际上是伪随机数,因为10次连续的调用通常生成10个同样的随机数。 srand()函数允许覆盖默认的种子值,重新启动另一个随机序列;可以使用time(0)的返回值来设置种子。
阅读全文
摘要:1.运算符重载 格式: operator(argument-list) 如: Time operator+(const Time &)const; ... Time Time::operator+(const Time & t) const { Time sum; sum.minutes = min
阅读全文
摘要:1.类方法可以直接访问类的private组件(p283);对于类的私有部分,在其中声明的成员只能通过成员函数进行访问;对于类的公有部分,在其中声明的成员可被使用类对象的程序直接访问。p287 2.定义位于类声明中的函数都将自动成为内联函数,在类声明中定义方法等同于用原型替换方法定义,然后在类声明后面
阅读全文
摘要:p266 名称空间不能用于代码块中; 默认下名称空间中声明的名称的链接性为外部。 在开发程序时使用多个文件时,一种有效的组织策略是,使用头文件来定义用户的类型,为操作用户类型的函数提供函数原型;并将函数定义放在一个独立的源代码文件中。头文件和源代码文件一起定义和实现了用户定义的类型及其使用方式。最后
阅读全文
摘要:1.c++ pp page 250 存储持续性:数据保留在内存中的时间;(注:自动存储持续性:在函数定义中声明的变量(包括函数参数)的存储持续性为自动的。它们在程序开始执行其所属的函数或代码块时被创建,而不是程序运行到定义语句时才被创建) 作用域描述了名称在文件(翻译单元)的多大范围内可见。全局作用
阅读全文
摘要:在按照c++ pp page255,尝试在一个cpp文件(翻译单元)中定义具有外部链接性的静态变量int x = 1,在另一个cpp文件中用 extern int x;引用声明时,运行会出现undefined reference to 'x'的错误。 两个文件分别如下: 接着F5编译,出现: 这时候
阅读全文
摘要:关于函数模板与泛型编程的关系,见 https://blog.csdn.net/baidu_37964071/article/details/78235247 函数模板是通用的函数描述,它们使用泛型来定义函数,其中的泛型可用具体的类型(如int 或 double)替换。 1.模板并不创建任何函数,只告
阅读全文
摘要:c++ pp page 227 1.函数重载的关键是函数的参数列表(函数特征标);如果两个函数的参数数目和类型相同,同时参数的排列顺序也相同,则它们的特征标相同。 仅返回类型不同的函数不能重载,重载的特征标必须不同。 2.编译器在检查函数特征标时,将把 一个类型的引用 和该类型本身视为同一个特征标。
阅读全文
摘要:(c++ pp page 225) 1.对于带参数列表的函数,必须从右向左添加默认值。即,如果要为某个参数设置默认值,则必须为它右边所有的参数提供默认值。 int f(int n,int m = 5,int j);//invalid 2.只有原型指定了默认值。函数定义与没有默认参数时完全相同。
阅读全文
摘要:1.引用基本的概念 int& a = b; 指创建了一个 指向int的引用a,a是复合类型 int& ;(类似指针也是符合类型 int*) a指向b,即a是b的别名; 必须在声明时就将引用初始化,不能先声明再初始化;(c++ pp page 211) 2.常量引用 const int & 在引用做函
阅读全文