C++11 final 标识符

一、final


final 是 C++11 新增的一个标识符

主要用于在类定义时,可以显式强调不能继承

防止我们在使用类的过程中

有意或者无意为该类创建子类

二、举个栗子


1、类继承

看以下代码

#include <iostream>
using namespace std;

class A {};
class B: public A{};

int main(int argc, char ** argv)
{
	return 0;
}

B 类是 A 类的派生类

接着加上标识符 final

可以看到 B 类不能继承 A 类型

2、虚函数

final不仅能标识类,也能标识虚函数

#include <iostream>
using namespace std;

class A {
public:
	virtual void fun(){}
};
class B: public A{
	virtual void fun() {}
};

int main(int argc, char ** argv)
{
	return 0;
}

一切正常

接着加上标识符 final

当然,纯虚函数就没啥意义啦

#include <iostream>
using namespace std;

class A {
public:
	virtual void fun() = 0;
};
class B: public A{
	virtual void fun() {}
};

int main(int argc, char ** argv)
{
	return 0;
}

三、_End


1


版权声明:本文为Lvvou1024原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。