c++学习笔记——常用关键字简析

  c++是c的超集,完全兼容c,但是c++具有更抽象的概念和更高层次的封装。相比c语言,难度跨越很多,但也不再关注更底层的东西,所以有挑战,同时也有让人学习的欲望。c++上一份工作完全没用过,这一份工作虽然是技术支持,但岗位是驻场开发,使用的编程语言就是c++,所以必须引着c++这座大山往上。

  先从c++的关键字开始。

  原生的c++98的关键字有63个,c++11有73个。这里以c++11为标准。

  

asm
do
if
return
typedef
auto
double
inline
short
typeid
bool
dynamic_cast
int
signed
typename
break
else
long
sizeof
union
case
enum
mutable
static
unsigned
catch
explicit
namespace
static_cast
using
char
export
new
struct
virtual
class
extern
operator
switch
void
const
false
private
template
volatile
const_cast
float
protected
this
wchar_t
continue
for
public
throw
while
default
friend
register
true
 
delete
goto
reinterpret_cast
try
 

  c++11新增的有:

alignas char16_t constexpr noexcept static_assert
alignof char32_t decltype nullptr thread_local

  asm关键字用于在c++中包含汇编代码块,__asm关键字启动内联汇编,并且可以用在任何的c/c++语法正确的地方。

  在使用时,在__asm后接大括号包含着的汇编代码段(一组汇编指令)或一条汇编指令。

  auto关键字和c中的auto关键字类似,声明变量的存储类型。如不在任何类、结构、函数、块中的变量为全局变量,保存在静态区且生命周期全局;将在这些范围中的变量声明为局部变量,保存在栈区,且类/结构/函数/块被释放时,随之释放。

  bool类型是c++内置数据类型,有两种值:true或者false,常用于函数或表达式执行成功与否的判断。

  break能够跳出一层switch语句和一层循环语句,对if无效。continue能跳出本次循环,到下一次循环的起始位置,对switch/if无效。goto和用户定义的标号结合使用,使用goto能无条件跳出到定义的标号所在的位置。return关键字能返回一个状态给调用该函数的位置。

  switch、case、default语句结构用于实现程序分支,switch后可接整型(包含字符型)、枚举和重载了强制转换整型枚举函数的类类型的变量/常量/表达式。不能是实型、指针和不能转换为int类型的值。case后只能接常量。当case后的标志没有一条能和switch后的表达式/常量/变量匹配,则执行default语句。

  if和else是判断语句,if后接表达式和变量,为真则执行if后缀着的语句块或者语句,为假则跳过该语句块或语句。

  try和catch一起使用,用来实现c++中的异常检测和处理。try标示检测异常的语句块的开始,catch标示结束,throw后缀异常检测的类型。

  char、int、short、double、float、long、void和bool一样都是c++内置的数据类似型。

  wchar_t之前没见过,要拿出来说下。wchar_t关键字用来定义宽字符型变量。其字面量一‘L'开始。

  class关键字用于定义类类型。

  const标识只读变量修饰指针时,const char *p中const修饰*p,char *const p中const修饰p。static修饰静态变量。

  new、delete用来在堆上申请释放内存。

  *_cast关键字用来强制类型转换。const_cast去const,dynamic_cast动态类型转换,需要运行时支持(待解释)。static_cast区static。reinterpret_cast运算符是用来处理无关类型之间的转换;它会产生一个新的值,这个值会有与原始参数(expressoin)有完全相同的比特位。按bit位重新转换。

    do...while和while都是循环语句,do...while执行一次循环语句再进行条件判断,while先进行判断。do...while后要加;

    for也是循环语句。形式为for(1;2;3)。括号中1为初始化表达式,2为判断表达式,3一般用作循环变量自加。

  enum、struct、union分别为枚举类型,结构体类型,共用体类型。都为构造类型。struct和class的区别在于成员默认的级别,struct为public,class为private

    explicit修饰构造函数为显示构造函数,显示构造函数不可被用于拷贝赋值,而只能为直接构造。

  extern关键字可以声明外部类型、变量和函数,export声明外部的模板类。

  friend关键字用来声明友元类或者友元函数时使用。友元这一概念在后面会加以记录。

  inline函数即内联函数,在类中直接定义的函数默认为内联函数。

  mutable意为“可变的,易变的”,具体用法后面加以详述。

  using、namespace用来声明命名空间以供当前模块使用。

  private、protected、public声明了类中成员的级别,和能否被外部磊/函数所使用。privatef成员可以被该类、子类和友元类的方法访问。protected成员可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问;基类对象不能访问基类的protected成员,派生类中可以访问基类的protected成员能被类中的。也就是说protected成员在本类中的级别如同private成员一致,只能被本类的方法使用,不能通过成员访问被本类的对象使用。public成员既可被本类的方法使用,也可通过成员访为被其对象调用。

  signed、unsigned标识有符号和无符号变量。

  template声明一个模板类。

  virtual声明虚函数。

  volatile可变的,抗优化。

posted @ 2017-09-05 23:31  小学毕业未遂  阅读(223)  评论(0)    收藏  举报