簡體   English   中英

在沒有 .get() 的情況下從結構返回成員

[英]Returning member from struct without .get()

假設我有以下結構

template<typenameT>
class Foo
{
  T value;
  public:
    // some public logic
}

在這一點上我想要的就是能夠說

Foo<int> A;

然后從A獲取值,就好像它“只是 T 類型的值”一樣,並按如下方式使用它

int val1 = A;  // must correspond to int val1 = A.value
               // and
int& val2 = A; // must return reference of A.value and so on

我真的不想用戶設置/獲取,因為我將經常編寫此類調用並希望盡可能簡化代碼。

首先,我認為重載 = 可能會有所幫助,但我沒有做對。 它與賦值運算符相反,例如Foo<int> A; int val = 1; A = val; Foo<int> A; int val = 1; A = val;

編輯:網上肯定有答案,但我在“賦值”關鍵字下找不到它。

您似乎想重載用戶定義的轉換運算符:

template <typename T>
class Foo
{
  T value;
public:
    operator T () const { return value; }
    operator T& () { return value; }

    // some public logic
};

暫無
暫無

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

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