簡體   English   中英

使用基模板類語句簡化

[英]simplify using base template class statement

通常在派生模板類中,我需要引用基類來訪問成員。 我最終編寫了這樣的代碼:

template<typename A>
struct BaseClass
{
};

template<typename B>
struct Derived : public BaseClass<int>
{
  using Base = BaseClass<int>;
};

對於具有大量模板參數的大量類,這變得更加冗長且難以維護。

在這種情況下,有沒有更簡潔的方法來導入基本符號?

我認為你可以用另一種方式做事,即將基類解析推遲到基類,這樣它就會為任何新的派生類自動解析,而無需為每個派生類重寫它。

就像是:

template <typename A>
struct BaseClass
{
    using Base = BaseClass<A>;
};

template <typename B>
struct Derived : public BaseClass<int>
{};

活生生的例子

如果Derived本身不是模板類:您可以簡單地使用BaseClass (繼承的注入類名稱):

struct Derived : public BaseClass<int>
{
  void f()
  {
    BaseClass::f();
  }
};

如果也是模板, using Base = BaseClass<int>; 可能是最好的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM