2013-03-24 71 views
0

我有這個類:屬性使用在C私有方法++

class Size 
{ 
    private: 
     int size_x; 
     int size_y; 

     int GetX(void); 
     int GetY(void); 
     void PutX(int x); 
     void PutY(int y); 
    public: 
     _declspec (property (get = GetX , put = PutX)) int X; 
     _declspec (property (get = GetY , put = PutY)) int Y; 
}; 

此代碼將無法正常工作,因爲當我嘗試訪問X或Y,使用私有方法。

我該如何製作一個使用無法在課堂外使用功能的屬性?

+0

如果你只是讓這些功能可以用作存取?爲什麼不是一個解決方案? – 2013-03-24 13:15:41

+2

這是什麼語言?它看起來不像C++。 – juanchopanza 2013-03-24 13:15:44

+0

@ H2CO3你是指什麼訪問者?我不熟悉那個術語.. :) – 2013-03-24 13:17:31

回答

1

我怎樣才能使一個屬性,使用功能,不能在課堂外使用 ?

只有使用另一種語言,恐怕。標準C++沒有這樣的屬性糖(可悲),雖然有一些黑客,但他們都不是很漂亮,包括微軟。看到這裏的一些討論你的私有方法是不符合微軟declspec(property)擴展具體問題: http://blog.aaronballman.com/2011/11/an-almost-useful-language-extension/

+0

好吧,這正是我需要的。您鏈接的文章對我的問題來說是完美的。謝謝 :) – 2013-03-24 13:35:48

相關問題