我现在有这样的:C++ - 如何创建一个属性,可以在类中使用_
template <typename T>
class property<T, kPropertyReadOnly> {
T value;
public:
property() {}
property(T initValue) : value(initValue){}
T & operator = (const T &i) {
return value = i;
}
operator T const &() const {
return value;
}
};
哪种带来的性能C++。比方说,我们有一个类:
class foo {
property<int> myProperty;
}
然后,我希望能够使用属性从外面的世界是这样的:
Foo foo();
foo.myProperty = 2;
但Foo类里面,我想要能做到这一点:
void Foo::myFooFunction() {
_myProperty = 2;
}
这种方式是很清楚什么是实例变量/属性,但来自外部使用时,你不必做这个丑陋的东西:
foo._myProperty = 2;
我知道模板可以做很多魔术,但他们可以这样做吗?
为了减少与编译器的符号碰撞的可能性,我建议使用'_'作为*后缀*(最后),而不是作为*前缀*(在开始处)。 –
你能进一步解释为什么吗?我想在开始时使用它,因为然后autocompletion帮助很大,当输入下划线时,您会看到所有成员变量。 – keyboard