當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。