template<typename SelfType>
class meow::Self< SelfType >
An implementation for the reference mechanism.
Some example code:
class A {
private:
struct DataMember {
int var1;
int var2;
int counter;
DataMember() : var1(0), var2(0), counter(0) {}
DataMember(DataMember const& b) :
var1(b.var1), var2(b.var2), counter(0) {}
DataMember(int var1_init_value) :
var1(var1_init_value), var2(0), counter(0) {}
~DataMember() {}
DataMember
const&
CopyFrom(DataMember
const& b) {
var1 = b.var1;
var2 = b.var2;
}
};
public:
A() {}
A(A const& another_class_a) : self_(another_class_a.self_) {}
A(int var1_init_value) : self_(DataMember(var1_init_value)) {}
~A() {}
int GetVar1() const {
return self_->var1;
}
void SetVar1(int new_value) {
int old_value = self_->var1;
self_()->var1 = new_value;
if (old_value != new_value) {
self_()->var2 = old_value;
}
}
int GetVar2() const {
self_()->counter += 1;
return self_->var2;
}
};
Definition at line 117 of file self.h.