小C的第一宇宙
wangc
Oct 13, 2017
阅读本文需要 4 分钟(按字数)

#C++——基础总结


1. C++简介

  • C++简介:

    C++ 是在C语言的基础上开发的一种面向对象编程语言,应用广泛;C++ 支持多种编程范式 --面向对象编程、泛型编程和过程化编程,支持类、封装、继承、多态等特性。

  • C与C++ 的不同

    思想

C语言是一个结构化语言,它的重点在于算法与数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事物)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事物)控制。所以C语言和C++的最大区别在于它们解决问题的思想方法不一样。

基本构成

C++ 与C语言语法大部分是相同的,可以说C++是带类的C。 C++对C的“增强”,表现在六个方面:

  1. 类型检查更为严格。
  2. 增加了面向对象的机制(封装,继承,多态)。
  3. 增加了泛型编程的机制(Template)。
  4. 增加了异常处理。
  5. 增加了运算符重载。
  6. 增加了标准模板库(STL)。

2. C++重点

* 拾零

  • 代码块:大括号间为一个代码块。
  • C++数据类型多出一个bool类型(可以用int型代替)
  • 赋值:int a(0);
  • 枚举类型:enum class Letter : char { A, B, C, D };
  • :::作用域运算符,前加作用域名称,不加为全局作用域。
  • 新式类型转换
    • static_cast(expression)
    • dynamic_cast
    • reinterpret_cast
    • 尽量少用类型转换;坚持用新式的.
  • auto关键字:系统根据字面值判断数据类型
  • const修饰符
  • typid: 获取表达式的类型
  • endl操作符:输出换行,并刷新缓冲区。
  • a->b等价于(*a).b,,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。

    * 存储结构

    * 输入输出

    ```c #include

std::cin « num1 « num2; Std::cout « “num1 + num2 = “ « num1 + num2 « std::endl;

读入未知数目的输入
> 作为while的判断条件,如果输入流是有效的,执行循环体,如果无效,跳出循环体。
```c
string word;
while(std::cin >> value)
    std::cout << word << std::endl; 

* 命名空间

作用:防止意外的名称冲突。

  • using 声明using std::cout;
  • using 指令using namespase std;
  • 自定义名称空间 对于大型项目,每个程序员小组都可以有自己的命名空间,不用担心名称冲突。 ```c #include

namespace muStuff { int value(0); } void main() { std::cout « myStaff::value; }

### * 函数
* **传递引用**
> 引用传递和指针传递功能差不多,有C语言背景的程序员习惯用指针传递,在C++中使用引用传递更安全和自然。

```c
int abs(int& num)
{
    return (num>0)?num:-num;
}
void main()
{
    int num(-3);
    
    cout << abs(num) << endl;
}