Giriş
Not1 : Bu yazı C'deki Anonymous Structure ile ilgili
Not2 : Bu yazı Nested Class ile ilgili
C#'taki gibi property kodlarımız olsun isteyelim.
Şöyle yaparız.
Okunup yazılabilen propert için şöyle yaparız.
Not1 : Bu yazı C'deki Anonymous Structure ile ilgili
Not2 : Bu yazı Nested Class ile ilgili
C#'taki gibi property kodlarımız olsun isteyelim.
public Foo foo { get; private set; }
Unnamed ClassŞöyle yaparız.
struct Foo
{
class {
int value;
public:
int & operator = (const int &i) { return value = i; }
operator int () const { return value; }
} alpha;
class {
float value;
public:
float & operator = (const float &f) { return value = f; }
operator float () const { return value; }
} bravo;
};
Property TemplateOkunup yazılabilen propert için şöyle yaparız.
template <typename T>
class Property {
public:
virtual ~Property() {}
virtual T & operator = (const T &f) { return value = f; }
virtual operator T const & () const { return value; }
protected:
T value;
};
Salt okunur için şöyle yaparız.template <typename T>
class ReadOnlyProperty {
public:
virtual ~ReadOnlyProperty() {}
virtual operator T const & () const { return value; }
protected:
T value;
};
Alan olarak kullanmak için şöyle yaparız.Property<float> x;
Sınıfın içinden erişmek için şöyle yaparız.class Owner {
public:
class : public ReadOnlyProperty<float> { friend class Owner; } x;
Owner() { x.value = 8; }
};
Hiç yorum yok:
Yorum Gönder