Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么C++;“未添加标准”;物业;a拉卡?_C++_Oop_Properties_Getter Setter - Fatal编程技术网

C++ 为什么C++;“未添加标准”;物业;a拉卡?

C++ 为什么C++;“未添加标准”;物业;a拉卡?,c++,oop,properties,getter-setter,C++,Oop,Properties,Getter Setter,我所说的属性是指C风格的属性,包括getter和setter 我很想知道为什么它们不是C++语言的一部分。我假设在编写规范时一定讨论过这样一个特性,因此认真决定不将其包含在语言中。以下是一个实现: 因为语言本身是复杂的,必须有一个很好的理由在核心中包含一些东西。您可以使用现有的语言工具创建属性。当然你不应该这样做(另请看:准类)。你的意思无疑是“有意识的”,但是的,“有责任心的”正是它们不包括在内的原因。它们是个坏主意,拒绝它们是正确的做法。由Borland提出,并被拒绝。看这里。对于在obj

我所说的属性是指C风格的属性,包括getter和setter


我很想知道为什么它们不是C++语言的一部分。我假设在编写规范时一定讨论过这样一个特性,因此认真决定不将其包含在语言中。

以下是一个实现:


因为语言本身是复杂的,必须有一个很好的理由在核心中包含一些东西。您可以使用现有的语言工具创建属性。当然你不应该这样做(另请看:准类)。你的意思无疑是“有意识的”,但是的,“有责任心的”正是它们不包括在内的原因。它们是个坏主意,拒绝它们是正确的做法。由Borland提出,并被拒绝。看这里。对于在
obj.x=3
中,
x
实际上可以是具有重载
=
运算符的类类型,并且该运算符知道如何调用
obj
上的特定方法来存储值。该方法可以通过指向成员语法的指针在对
x
的构造函数调用中命名。或者,我认为,该方法甚至可以是
x
类实例化中的模板参数。当然,
x
也可以支持被求值,这被转换为不同的函数调用。忽略最后的代码,这确实是一个反对包含它们的好理由:
int i = 5,j;
PropTest test;
test.Count = i;    //-- call the set method --
j= test.Count;     //-- call the get method --