【C++学习点滴】4月汇总:volatile,数组维度,const修饰符

volatile关键字

  volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。

使用该关键字的例子如下:

int volatile nVint;
 当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。
数组维度:
数组的维数值必须是常量表达式—— 即 必须能在编译时刻计算出它的值 这意味着非const 的变量不能被用来指定数组的维数

与内置数组不同 vector 可以被另一个vector 初始化 或被赋给另一个vector
Const修饰符:

const 对象的地址只能赋值给指向const 对象的指针

const int test = 0;
const int *ptr = &test; //ptr 指向的对象是无法改变的,但是ptr可以指向其他的对象
int test1 = 0;
int *const ptr = &test1; //ptr 指向的地址是无法改变的,但是指向的对象可以改变,意思是这种指针只能指向一个固定的对象。但是这个对象的值可变。

Break语句:
break 语句终止最近的while do while  for 或switch 语句 程序的执行权被传递给紧接着被终止语句之后的语句<注意不包含if语句>
continue 语句只有出现在循环语句中才是合法的

和JAVA语言不一样的初始化定义方法
ilist() : _at_front( 0 ), _at_end( 0 ) ,_size( 0 )
{
}
这样看就比较好理解了。
冒号后面的表示将括号里的值赋给成员变量,而函数体里面什么都没有做。
相当于如下代码
ilist() 
{
  _at_front=0;
 _at_end=0;
 _size=0;
}

这是构造函数的一个特殊的实现方法,其他的函数不能这么用。
虚函数 virtual
要点: 主要目的是启用动态绑定。 对于非虚函数的调用将于编译时刻就会确定,而虚函数将会在调用的时候动态确定。
       派生类如果没有重定义某个虚函数,则会使用基类中定义好的版本。

注意: 构造函数, static 成员函数是不能定义为虚函数的。

virtual 保留字只在类内部的成员函数声明中出现不能再定义的时候出现。

protected 成员
只允许派生类访问,但是派生类只能通过派生类的对象来访问。



原文地址:https://www.cnblogs.com/rywx/p/2040393.html