简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
1.前言
本篇目的:理解C++的final关键字对类、函数的作用。
1.应用实例
v1.0 final修饰类,禁止类继承
#include <iostream>
using namespace std;
class A final{
public:
//virtual void test_Rf() = 0;
};
class B : public A{
public:
virtual void test_Rf() {
printf("xxx--------->%s(), line = %d\n",__FUNCTION__,__LINE__);
}
};
int main(){
// A *a =new a;
}
v2.0 final虚函数,禁止重写
#include <iostream>
using namespace std;
class A {
public:
virtual void test_Rf() final;
};
class B : public A{
public:
virtual void test_Rf() {
printf("xxx--------->%s(), line = %d\n",__FUNCTION__,__LINE__);
}
};
int main(){
// A *a =new a;
}
v3.0 final函数,禁止重载(无论是虚函数,还是普通函数,都禁止重载)
#include <iostream>
using namespace std;
class A {
public:
};
class B : public A{
public:
void test_Rf() final{
printf("xxx--------->%s(), line = %d\n",__FUNCTION__,__LINE__);
}
};
class C : public B{
public:
void test_Rf(){
printf("xxx--------->%s(), line = %d\n",__FUNCTION__,__LINE__);
}
};
int main(){
// A *a =new a;
}