gpt4 book ai didi

C++ - 如何创建一个可以在类中与 _ 一起使用的属性?

转载 作者:太空狗 更新时间:2023-10-29 21:16:51 25 4
gpt4 key购买 nike

我目前有这个:

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;

我知道模板可以发挥很多作用,但它们能做到吗?

最佳答案

如果我很好地理解你的问题,你可以做的是将你的私有(private)变量与对它的公共(public)引用连接起来:

class Foo {
property<int> _myProperty;
public:
property<int> &myProperty = _myProperty;

void myFooFunction() {
_myProperty = 2;
}
};

Live Demo

关于C++ - 如何创建一个可以在类中与 _ 一起使用的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34384681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com