当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ is_final用法及代码示例


在本文中,我们将讨论 C++ STL 中 std::is_final 模板的工作、语法和示例。

is_final 是位于 <type_traits> 头文件下的模板。此模板用于检查给定的类型 T 是否为最终类。

什么是 C++ 中的 final 类?

当我们使用 final 说明符声明一个类时,它被称为 Final Class。 Final class 是一种特殊的 class,不能扩展以创建另一个 class。在 C++ 中,为了将一个类作为 final,我们将一个类作为一个朋友,然后虚拟地继承该类,使该类不可扩展。

最终课程示例

class final_abc; //Class which is to be made final
class abc {
   private:
   abc(){cout<<"abc constructor";}
   friend class final_abc;
};
class final_abc:virtual abc //made it final class. {
   public:
   final_abc(){cout<<"Final class constructor";}
};
class derive:public final_abc; //Error can't be extended

用法

template <class T> is_final;

参数

模板只能有类型 T 的参数,并检查给定的类型是否为 final 类类型。

返回值

它返回一个布尔值,如果给定类型是 final 类,则返回 true,如果给定类型不是 final 类,则返回 false。

示例

Input:class final_abc;
   class abc { friend class final_abc; };
   class final_abc:virtual abc{ };
   is_final<abc>::value;
Output:False

Input:class final_abc;
   class abc
   { friend class final_abc; };
   class final_abc:virtual abc{ };
   is_final<final_abc>::value;
Output:True

示例

#include <iostream>
#include <type_traits>
using namespace std;
class TP {
   //Same if it will be a structure instead of a class
};
class T_P final {
   //Same if it will be a structure instead of a class
};
int main() {
   cout << boolalpha;
   cout << "Using is_final";
   cout << "\nTutorials Point:"<<is_final<TP>::value;
   cout << "\nT_P Final:"<<is_final<T_P>::value;
   cout << "\ncheck for char:"<<is_final<int>::value;
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出 -

Using is_final
Tutorials Point:false
T_P Final:true
check for char:false

示例

#include <iostream>
#include <type_traits>
using namespace std;
union TP {
   //Union
};
union T_P final {
   //Union
};
int main() {
   cout << boolalpha;
   cout << "Using is_final";
   cout << "\nTutorials Point:"<<is_final<TP>::value;
   cout << "\nT_P Final:"<<is_final<T_P>::value;
   cout << "\ncheck for char:"<<is_final<int>::value;
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出 -

Using is_final
Tutorials Point:false
T_P Final:true
check for char:false

相关用法


注:本文由纯净天空筛选整理自Sunidhi Bansal大神的英文原创作品 is_final template in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。