计算机二级C++——第一套

第一套

1、一般把计算机完成一条指令所花费的时间称为一个指令周期。指令周期越短,指令执行就越快。

2、顺序程序具有顺序性封闭性再现性的特点,使得程序设计者能够控制程序执行的过程(包括执行顺序、执行时间),对程序执行的中间结果和状态、可以预先估计,这样就可以方便地进行程序的测试和调       试。并发性是并发程序的特点。

3、为了降低算法的空间的复杂度,主要应减少输入数据所占的存储空间以及额外空间,通常采用压缩存储技术。(对数据进行压缩存储会降低算法的空间复杂度

    算法的计算工作量是用算法所执行的基本运算次数来度量的,而算法所执行的基本运算次数是问题规模(通常用整数)表示的函数。(算法的复杂度与问题的规模有关

5、树的性质:树的总结点数为树中所有结点的度数之和再加1

6、结构化程序设计的目的:通过设计结构良好的程序,以程序静态的良好的结构保证程序动态执行的正确性,使程序易理解,易调试,易维护,以提高软件开发的效率,减少出错率,因此结构化程序强调程序的       易读性。

8、数据库管理的三个阶段是人工管理阶段、文件系统阶段和数据库系统阶段。人工管理阶段没有专门的软件对数据进行管理。

11、const是一个C++语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。限定符声明变量只能被读,必须初始化。

13、先定义指针变量,然后给指针变量赋初值有三种情况:

       1.用取地址运算符“&”将变量地址赋给指针变量,如:P=a

       2.将一个指针变量中的地址赋给另一个指针变量,如P=P1

       3.给指针变量赋空值0,如q=0,表示该指针变量不指向任何变量。

        不能用一个常量给指针变量赋初值 如int*p;*p=q;(错)

14、if语句的条件部分不能嵌套if语句。

15、C++标识符命名规则:标识符由字母、数字和下画线组成,且必须以字母或下画线开头

16、内联函数在调用时,是将调用表达式用内联函数体来替换,而不是再定义在另一个函数体内(内联函数就是定义在另一个函数体内部的函数

        标准C++要求在调用一个函数之前,,必须先声明其原型(

       (编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式)

        函数的返回值不同不能区分函数重载形式。

17、重载运算符规则:1、C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。

                                     2、C++不能重载的运算符只有5个“?:”   “·    “;:”   “sizeof”   “ .* ”

                                     3、重载不能改变运算符运算对象的个数。

                                     4、重载不能改变运算符的优先级和结合性。

                                     5、重载运算符的函数不能有默认的参数。

                                     6、重载的运算符必须和用户自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。                           18、内联函数

            内联函数在调用时不发生控制转移(一般函数进行调用时,要将程序执行权转到被调函数中,然后在返回到调用它的函数中,而内联函数在调用时,是将              调用表达式用内联函数体来替换。)------类似于宏

           (内联函数不一定要通过关键字inline定义)在类内部实现的函数都是内联函数,可以不用inline定义,只有函数外部定义的内联函数才必须加关键字                     inline 。 

             编译系统并非对内联函数必须使用内联,而是根据具体情况而定(内联函数是通过编译器来实现的) 

            内联函数的函数体的最后一条语句不一定是return语句,内联函数不是必须有返回值的。

   19、运算符重载为友元函数的规定:

           1、一般情况下,单目运算符最好重载的类的友元函数,双目~类的友元函数。

           2、双目运算符 “ = ”   “()”  “[ ]”   “—>”不能重载为类的友元函数。

21、运算符作为非成员函数的重载的使用方法。

23、由于常对象不能被更新,因此通过常对象只能调用它的常成员函数。

        不能调用非const函数。

        常对象的成员函数不一定都是常成员函数,只需保证其数据成员是常数据成员即可。

24、常成员函数只能引用本类中的数据成员,而不能修改它。

25、this指针

       this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员时,编辑器会自动将对象本身的地址作为一个隐含参数传递给函数。

       全局函数和静态函数都不能使用this指针。

26、虚函数  虚函数不得时静态成员函数。

      定义:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数。

                 虚函数必须是基类的非静态的成员函数,其访问权限可以是protected或public。

                如果一个类包含了纯虚函数,称此类为抽象类。

27、基类与派生类的关系    派生类可以有多个直接基类,而派生类有三种继承方式,在私有继承中,派生类的成员并不能访问基类的成员。

       如果基类中定义了(缺省构造函数)或(根本没有定义任何一个构造函数)时,在派生类构造函数的定义中,可以省略对基类构造函数的调用。 在其他情况下基类的构造函数必须在派生类的构造函数体中调          用。

29、对象的初始化

       类的数据成员是不能在声明类时初始化的。

30、一个类中既有默认构造函数又有带参数的构造函数,定义对象或对象数组都会被调用。  对象指针不调用构造函数。

31、只能通过构造函数的参数初始化列表对常数据成员进行初始化。

      不能采用在构造函数中对常数据成员赋初值的方法进行初始化,用初始化列表,常成员函数不能更新对象的数据成员。

     静态成员函数由于没有this指针,所以不能访问本类中的非静态成员。

32、在类外定义类的成员函数,需要使用作用域限定符“::”

33、派生类的构造函数和析构函数

   在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数、对象释放时,先执行派生类的析构函数,再执行基类的构造函数。

 

 

 

 

 

 

 

 

 

posted @ 2021-01-18 12:31  闫佳杰  阅读(382)  评论(0)    收藏  举报