C++ C++;“定制会员对会员”;指针";/通道

C++ C++;“定制会员对会员”;指针";/通道,c++,class,visual-c++,operator-keyword,member,C++,Class,Visual C++,Operator Keyword,Member,几年前,当我在谷歌上搜索时,我发现了一个简洁的功能。 它允许使用某种“函数”来控制对成员变量的访问,但我似乎再也找不到它了。(我也不确定这是否是C++特性,或者只针对MSVC编译器,因为它在VisualStudio中被突出显示红色,就像它是标签或某物)< /P> 其背后的理论与此类似: class A { public: .test(int value) { priv = value; } private: int priv = 0; }; ... A a; a.test = 14; //

几年前,当我在谷歌上搜索时,我发现了一个简洁的功能。 它允许使用某种“函数”来控制对成员变量的访问,但我似乎再也找不到它了。(我也不确定这是否是C++特性,或者只针对MSVC编译器,因为它在VisualStudio中被突出显示红色,就像它是标签或某物)< /P> 其背后的理论与此类似:

class A
{
public:
.test(int value)
{
  priv = value;
}
private:
int priv = 0;
};

...
A a;
a.test = 14; // Sets priv to 14 ! note no () needed after test´
有人知道它是什么吗?

指定的初始值设定项 如果非要我推测的话,你很可能见过C99指定的初始值设定项

看起来是这样的:

MY_TYPE a = { .flag = true, .value = 123, .stuff = 0.456 };

这只是C语言,C++中不存在。有一个C++20提案已被接受,其中包括对它们的有限支持:

C++/CLI属性

另一个要注意的是属性,管理C++的一部分。 您可以这样使用它们(来源:)


谢谢大家的回应,但不,这并不像有些人拼命想告诉我的那样

对于那些对其工作方式感兴趣的人:

struct S
{
    int i;
    void putprop(int j) {
        i = j;
    }

    int getprop() {
        return i;
    }

    __declspec(property(get = getprop, put = putprop)) int the_prop;
};

 S s;
    s.the_prop = 5;
    int test = s.the_prop;

这不是合法的C++语法。我觉得C++可能有类似的代码,比如<代码> > <代码> >设置>代码>功能。我知道它看起来不像C++语法,我知道你在说什么,但它仍然在过去工作,但是我很遗憾我找不到它。你是在寻找吗?你是说<代码>朋友< /Cord>关键字?你可以做的。
a.test
一个类的实例,其中
运算符=
用于赋值,而
运算符int
用于读取值。但这可能不是个好主意。啊哈,好的。C++ Builder具有类似的特性。
struct S
{
    int i;
    void putprop(int j) {
        i = j;
    }

    int getprop() {
        return i;
    }

    __declspec(property(get = getprop, put = putprop)) int the_prop;
};

 S s;
    s.the_prop = 5;
    int test = s.the_prop;