C/C++知识点

时间:2023-03-09 00:43:55
C/C++知识点

1 cout<<endl;什么意思?

  就是回车的意思~ 相当于C语言里面的printf("\n");

2 cin>>

键盘输入

例子:double  r=1.0;

cin>>r;                 //键盘输入

注意一个约定,引入标准头文件用尖括号,引入自定义头文件用双引号,例如:

    1. #include <stdio.h>
    2. #include "myFile.h"

3 字符串结束符是“\n”,文件结束标志是EOF

4 getch()的功能

  是从键盘输入一个字符,但不在屏幕上显示。在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行。

5 C++提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如
    3+5, 6+8
    称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为:
    表达式1, 表达式2
    逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。如,逗号表达式
      a=3*5, a*4
    赋值运算符的优先级别高于逗号运算符, 因此应先求解a=3*5(也就是把“a=3*5”作为一个表达式)。经计算和赋值后得到a的值为15,然后求解a*4,得60。                     整个逗号表达式的值为60。

6 如果使用用户自己定义的函数,而该函数与调用它的函数(即主调函数)在同一个程序单位中,且位置在主调函数之后,则必须在调用此函数之前对被调用的函数作声明。

7 " :: "是作用域限定符(field qualifier)或称作用域运算符,用它声明函数是属于哪个类的。

  员函数在类外定义时,必须在函数名前面加上类名,予以限定(qualifed),C++的函数,一般在类体内声明,在类外定义。

如果一个函数,其函数体只有2-3行,一般可在声明类时在类体中定义。

8 析构函数(destructor)

  在C++中“~”是位取反运算符,从这点也可以想到,析构函数是与构造函数作用相反的函数。当对象的生命期结束时,会自动执行析构函数。

     注意:析构函数不返回任何值,没有函数类型,也没有函数参数。因此它不能被重载。一个类可以有多个构造函数,但只能有一个析构函数。

实际上,析构函数的作用并不仅限于释放资源方面,它还可以被用来执行“用户希望在最后一次使用对象之后所执行的任何操作”,例如输出有关的信息。

9 extern

  extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

此外extern也可用来进行链接指定。

10 如果要在类外调用公用的静态成员函数,要用类名和域运算符“::”。如     Box::volume( );

11 如果一定要引用本类的非静态成员,应该加对象名和成员运算符“.”。如  a是对象   a.width;

12 C++允许一个派生类同时继承多个基类,这种行为称为多重继承(multiple inheritance)。

声明多重继承的方法

如果已声明了类A、类B和类C,可以声明多重继承的派生类D:
    class D: public A, private B, protected C
    {
        类D新增加的成员
    }
D是多重继承的派生类,它以公用继承方式继承A类,以私有继承方式继承B类,以保护继承方式继承C类。D按不同的继承方式的规则继承A、B、C的属性,确定各基类的成员在派生类中的访问权限。

多重继承派生类的构造函数

多重继承派生类的构造函数形式与单继承时的构造函数形式基本相同,只是在初始表中包含多个基类构造函数。如
    派生类构造函数名(总参数表列): 基类1构造函数(参数表列), 基类2构造函数(参数表列), 基类3构造函数(参数表列)
    {
        派生类中新增数成员据成员初始化语句
    }
各基类的排列顺序任意。