0
点赞
收藏
分享

微信扫一扫

C++知识整理(面试准备)

醉倾城1 2022-03-19 阅读 40

目录

第 1 章. C++的初步知识  

1.1 从C到C++

1.2 C++对C的扩充

1.3 用const 定义常变量

1.4 C++的函数声明

1.5 C++重载

1.6 函数模板

1.7 有默认参数的函数

1.8 变量的引用


第 1 章. C++的初步知识  

1.1 从C到C++

  • C语言是结构化和模块化的语言,它是面向过程的,在处理较小规模的程序时,用C语言较得心应手

  • C++保留了C语言原有的所有优点,并增加了面向对象的机制,与C兼容,C++既可以用于面向过程的结构化程序设计,又可用于面向对象的程序设计。

  • C++对C的“增强”,表现在两个方面:①在原来面向过程的机制基础上,对C语言的功能做了不少扩充。②增加了面向对象的机制。

1.2 C++对C的扩充

  • C++的输入输出 : cin 和 cout

  • cout:cout 必须和输出运算符"<<" 一起使用。 C语言中"<<"是左移运算符,C++中赋予了新的含义:作为输出信息时的“插入运算符” 。 例如“cout << "Hello!\n” ; 的作用是将字符串"Hello!\n" 插入到 输出流cout中,也就是说把所指定的信息输出在标准输出设备上。

  • setw用法:如果要指定输出所占的列数,可以用控制符 setw 进行设置,如 setw(5) 的作用是为其后面一个输出项预留5列的空间,如果输出数据项的长度不足5列,则数据向右对齐,若超过5列则按实际长度输出。

    例子: float a = 3.45; int b = 5; char c = 'A';

    cout << "a=" << setw(6) << a << endl << "b=" << setw(6) << b << endl << "c=" << setw(6) << c << endl;

    a=_ _3.45

    b=_ _ _ _ _5

    c=_ _ _ _ _A

    Tip: _ 代表一个空格

  • cin: 从输入设备向内存流动的数据流称为输入流。C++中,用“>>”运算符从输入设备键盘取得数据并送到输入流cin中,然后再送到内存。这种输入操作成为“提取”或“得到”, 常称为提取运算符。

    #include < iostream >
    ​
    using namespace std;
    ​
    int main(){
    ​
     cout << "ok" << endl;
    ​
     int a;
    ​
     cout << a << endl;
    ​
    }

    上面的程序中可以看到,对变量a的定义放在了执行语句(cout ...)之后,在C语言程序中是不允许这样的,它要求声明部分必须在执行语句之前。而C++允许对变量的声明放在程序的任何位置(但必须在使用该变量之前)。这是C++对C限制的放宽。Tip:当面试官问C++对C语言进行功能扩充的实例时,可以用。

1.3 用const 定义常变量

  • 在C语言中常用 #define 来定义符号常量, 例如 #define PI 3.14159

    但实际上,只是在预编译时进行字符置换,把程序中出现的字符串PI 全部置换为3.14159。在预编译之后,程序中不再有PI这个标识符。PI不是变量,没有类型,不占用存储单元,而且容易出错,如

    int a = 1; b = 2;
    #define PI 3.14159
    #define R a+b
    cout << PI * R * R << endl;

    这时输出的并不是我们以为的3.14159*(a+b)*(a+b), 而是3.14159*a+b*a+b。程序因此常常出错。

  • 但是在C++语言中提供了const定义常变量的方法,如const float PI = 3.14159;, 定义了常变量PI,它具有变量的属性,有数据类型,占用存储单元,有地址,可以用指针指向它,只是在程序运行期间变量的值是固定的,不能改变。因为不像#define那样容易出错,const问世后,已经取代了用#define定义符号常量的作用。

  • const 常与指针结合使用,有指向常变量的指针、常指针、指向常变量的常指针等,这些概念容易模糊,将在第3章介绍。

1.4 C++的函数声明

  • 在C++中,如果函数调用的位置在函数定义之前,则要求在函数调用之前必须对所调用的函数作函数原型声明(强制)

    函数声明形式:函数类型 函数名(参数表)

    参数表中一般要包括参数类型和参数名(int a), 也可以只包括参数类型而不包括参数名,如下:

    int max(int x, int y);// 函数声明1
    int max(int, int);//函数声明2

1.5 C++重载

  • C语言规定在同一作用域中不能有同名的函数,C++允许在同一作用域中用同一函数名定义多个函数,这些函数的参数个数和参数类型不相同,同名函数用来实现不同的功能。这就是函数的重载,即一个函数名多用

1.6 函数模板

  • 定义函数模板的一般形式:template < typename T > , 其中template 的含义是“模板”, 尖括号中先写关键字typename( 或 class),后面跟一个类型参数 T(也可以用任意一个标识符)。

1.7 有默认参数的函数

  • float area(float r = 6.5);
    area();//相当于area(6.5)
    area(7.5);//形参得到的值为7.5,而不是6.5

1.8 变量的引用

第 2 章. 类和对象的特性

举报

相关推荐

0 条评论