根据提供的文件内容,以下是关于C++面向对象程序设计的知识点:
1. C++基础语法和数据类型:文件中提到了基本的数据类型(如int),变量声明(如int *p, i;),指针的使用(如 p = new int[20];),数组的创建和初始化(如 p[0]=1; p[1]=1;),以及循环语句的使用(for循环)。
2. Fibonacci数列的实现:通过for循环实现了斐波那契数列的生成,其中p[0]=1和p[1]=1作为初始条件,之后的元素p[i]通过累加前两个元素的值来获得。
3. 函数定义和重载:定义了不同参数类型的重载函数sroot(),分别处理int、long和double类型参数,返回对应类型的平方根值。
4. 条件语句和逻辑运算:使用了if-else结构进行条件判断,并使用了逻辑运算符(如 >= 和 <)进行逻辑判断。
5. 函数参数传递:通过函数change(int &a, int &b)展示了如何通过引用传递参数,并在函数内部进行值的交换。
6. 用户输入和输出:使用cin和cout进行用户输入和输出操作,展示了如何读取输入和输出计算结果。
7. 数学计算:使用cmath库中的sqrt()函数进行平方根的计算。
8. 构造函数和析构函数:提到了构造函数和析构函数的调用,以及对象在创建和销毁时的状态。
9. 对象的创建和拷贝:展示了如何创建对象的实例,以及对象之间的拷贝操作。
10. 类的默认构造函数和带参数的构造函数:文件中提到了默认构造函数的调用,以及使用特定参数值调用构造函数的情况。
11. C++标准模板库STL的使用:虽然没有明确提到STL,但是通过new关键字分配内存和构造函数调用暗示了STL中vector等容器的内存分配和构造行为。
12. 二分查找算法的实现:文件中提到了使用二分查找算法解决方程f(x) = 0,通过循环逐渐缩小搜索范围直至满足特定精度要求。
13. 统计对象的创建和销毁数量:暗示了在对象生命周期中跟踪对象创建和销毁的数量。
14. 函数递归调用:虽然没有直接的代码示例,但是通过上下文可以理解涉及到二分查找算法,其中可能有递归调用的实现。
15. 浮点数比较:在二分查找算法中,对于浮点数的比较(如判断 zero 除外),使用了fabs()函数来比较浮点数的绝对值是否小于给定的精度。
16. 对象成员访问:通过p2=p1这样的赋值语句暗示了对象之间的成员变量赋值操作。
通过上述内容可以得知,该文件主要包含了C++编程语言的一些基本概念、面向对象程序设计的要点,以及部分高级编程技巧,如算法实现和STL使用。这些知识点对于学习和掌握C++面向对象程序设计至关重要。