我正在將一個結構轉換爲一個類,所以我可以爲我的變量強制執行一個setter接口。
雖然我不想更改變量被讀取的所有實例。 所以我將這筆:此C++ const引用訪問器接口習慣用法的任何問題?
struct foo_t {
int x;
float y;
};
這樣:
class foo_t {
int _x;
float _y;
public:
foot_t() : x(_x), y(_y) { set(0, 0.0); }
const int &x;
const float &y;
set(int x, float y) { _x = x; _y = y; }
};
我很感興趣,這是因爲它似乎建模C#的公共只讀屬性的想法。
編譯好,我還沒有看到任何問題。
除了常量引用在構造函數關聯的樣板,有什麼缺點,以這種方法嗎?
任何奇怪的別名問題?
爲什麼我之前沒看過這個成語?
爲什麼是const int的&X; const float&y;需要? – Arun 2010-06-01 19:47:06
@阿爾莎莎他在他的問題中解釋說。目的是爲'x'和'y'提供一個「訪問器」,它保持與訪問結構中的變量相同的語法。 – 2010-06-01 19:49:36
C#和C++是完全不同的語言,有自己的風格和用法。複製在另一個語言會導致很多麻煩的風格是簡單了很多學習的最佳技術,新語言無法複製的風格可能不兼容(如geter/seter的可怕的概念) – 2010-06-01 19:52:51