C++ 基本语法
- 对象 - 对象具有状态和行为。
- 类 - 类可以定义为描述对象行为/状态的模板/蓝图。
- 方法 - 从基本上说,一个方法表示一种行为。
C++ 关键字
- auto(自动,automatic)是存储类型标识符,表明变量"自动"具有本地范围,块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型。
- const_cast用于将const变量转为非const。
- static_cast用于各种隐式转换,比如非const转const,void*转指针等, static_cast能用于多态向上转化,如果向下转能成功但是不安全,结果未知。
- dynamic_cast用于动态类型转换。只能用于含有虚函数的类,用于类层次间的向上和向下转化。只能转指针或引用。向下转化时,如果是非法的对于指针返回NULL,对于引用抛异常。
- reinterpret_cast可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针。
- inline(内联)函数的定义将在编译时在调用处展开。inline 函数一般由短小的语句组成,可以提高程序效率。
- operator(操作符)用于操作符重载。这是 C++ 中的一种特殊的函数。
- template(模板),C++ 中泛型机制的实现。
- this 返回调用者本身的指针。
- virtual(虚的),C++ 中用来实现多态机制。
C++ 中的左值(Lvalues)和右值(Rvalues)
- 左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
- 右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。
C++ 中的类型限定符
限定符 | 含义 |
---|
const | const 类型的对象在程序执行期间不能被修改改变。 |
volatile | Volatile修饰符:不需要优化,让程序可以直接从内存中读取变量。变量直接放到寄存器中加快读写效率。 |
restrict | 由 restrict 修饰的指针是唯一一种访问它所指向的对象的方式。 |
C++ 随机数
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main ()
{
int j;
srand( (unsigned)time( NULL ) );
j= rand();
cout <<"随机数: " << j << endl;
return 0;
}
C++ 引用 vs 指针
- 不存在空引用。引用必须连接到一块合法的内存。
- 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
- 引用必须在创建时被初始化。指针可以在任何时间被初始化。