wangc
Oct 13, 2017
#C++——基础总结
1. C++简介
- C++简介:
C++ 是在C语言的基础上开发的一种面向对象编程语言,应用广泛;C++ 支持多种编程范式 --面向对象编程、泛型编程和过程化编程,支持类、封装、继承、多态等特性。
- C与C++ 的不同
思想
C语言是一个结构化语言,它的重点在于算法与数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事物)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事物)控制。所以C语言和C++的最大区别在于它们解决问题的思想方法不一样。基本构成
C++ 与C语言语法大部分是相同的,可以说C++是带类的C。 C++对C的“增强”,表现在六个方面:
- 类型检查更为严格。
- 增加了面向对象的机制(封装,继承,多态)。
- 增加了泛型编程的机制(Template)。
- 增加了异常处理。
- 增加了运算符重载。
- 增加了标准模板库(STL)。
2. C++重点
* 拾零
- 代码块:大括号间为一个代码块。
- C++数据类型多出一个bool类型(可以用int型代替)
- 赋值:int a(0);
- 枚举类型:enum class Letter : char { A, B, C, D };
::
:作用域运算符,前加作用域名称,不加为全局作用域。- 新式类型转换:
- static_cast
(expression) - dynamic_cast
- reinterpret_cast
- 尽量少用类型转换;坚持用新式的.
- static_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;
}