首頁 >後端開發 >C++ >如何在 C 中建立無參數模板建構函數?

如何在 C 中建立無參數模板建構函數?

Barbara Streisand
Barbara Streisand原創
2024-12-03 03:54:08253瀏覽

How Can I Create a Parameterless Template Constructor in C  ?

不含參數的建構子範本

在 C 中,無法直接宣告不含參數的範本建構子。這是因為與預設建構函式發生衝突。

一個可能的解決方法是在模板建構子中建立一個虛擬參數:

class A{
   template <typename U> A(U* dummy) {
       // Do something
   }
};

解決方法的限制

但是,此解決方法有限制:

  • 呼叫建構子時不能明確指定模板參數,因為它們必須透過參數推導來推導。
  • 您仍然需要傳遞參數才能呼叫建構函式範本。

替代方法

要實現所需的功能而不存在這些缺點,請考慮以下內容替代方案:

  • 在類別建構子中使用預設值:使用所需參數的預設值定義預設建構子。
  • 使用工廠函數: 建立接受所需參數並傳回類別實例的靜態工廠函數。

以上是如何在 C 中建立無參數模板建構函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn