3
有沒有辦法強制類的用戶根據用於構造函數的數據構造const
對象?強制用戶聲明對象const
例如,考慮周圍的一些緩衝小包裝類,可以是const
或非const
class Wrapper {
public:
Wrapper(const char*);
Wrapper(char*);
};
現在,如果用戶提供的是一個const
,我可以迫使他們聲明對象是const
在編譯時。那就是
// you have to do this if the input is const
const char* a;
// this will not compile
Wrapper w(a);
// but this will
const Wrapper(a);
任何想法?
不,沒有辦法做到這一點。 – john
對於工廠(函數),我認爲有一種方法(綁定到const ref)。 – dyp
爲什麼不使用不可變包裝?即一個不允許對包裝對象進行更改的包裝器。 – dyp