c++------virtual const static

来源:互联网 发布:淘宝换货 编辑:程序博客网 时间:2024/05/17 03:22

一、成员变量

const int a;

必须赋值或者在类的构造函数参数初始化列表中,两者只能取其一。

 

static int a;

不能在类中进行赋值,也不能在参数初始化列表中进行赋值。

对于静态变量,在类中只是声明,当在类外进行初始化时,必须先定义,即需要加上

int .即 int base::a=10;

 

二、成员函数

void fun()const

{}

const修饰的函数而不是返回const的变量,在该函数中不允许对函数变量进行改变。

 

virtual void fun()

{}

虚函数,可以被当作正常函数使用,只是该函数是通过虚函数表进行调用的,在调用的时候需要虚函数表的指针,而这个指针是对于对象来说的,即需要明确对象,拥有this指针才可以进行访问

 

static void fun()

{}

静态函数,表明我们可以不需要定义类的对象就可以直接调用该函数。

 

virtual void fun()const

{}

表明该虚函数中的内容是不可以更改的

 

static不可以和virtual一同使用,因为调用虚函数需要一个实例对象,而static并不能传入实例对象的this指针。

 

static不可以和const一起使用,因为const函数需要传入const this指针来保证函数的不可修改性。

 

三、不可以为虚函数

1.     构造函数:不可以为虚函数,因为构造函数需要执行完才能获得当前对象的this指针,没有this指针我们就无法访问类的虚函数表,从而构造函数就不嫩为虚函数。

2.     普通函数

 

 

 

0 0