我想寫一個覆蓋給定類的某些功能的模板類。 一個簡單的例子是最好的形容什麼,我試圖做...C++運算符重載模板類
#include <iostream>
using namespace std;
class box{
public:
void print(){ cout << "Good!"; }
};
template <class T>
class shadow{
T obj;
public:
T& operator. (void) { return obj; }
};
int main(void){
shadow<box> t;
t.print();
}
入住主要是我想做的事情。我想通過模板類來模擬 box'方法之一的調用。這似乎是運營商'。'不能被 重載。我設法達到這個最接近的是,運算符()超載 。
T& operator() (void) { return obj; }
並在main中調用t().print()。你能否提出一個更好的方法去做我想做的事情? 在此先感謝。我真的不得不這樣做,我不想使用繼承。
你想有效地實現什麼?聽起來像是我的XY問題。 –
'operator .'不能被重載,但你可以重載'operator *',然後調用't-> print()'。 –
你可以重載'shadow'的operator *'並像智能指針那樣使用't-> print()'語法。 – Csq