为什么人们不这样编码? Ruby风格!
#include <stdio.h>
class Name {
public:
void operator=(char *to) {
name = to;
printf("Change!\n");
}
private:
char *name;
};
class Human {
public:
//char *name;
Name name;
};
int main() {
Human andreas = Human();
andreas.name = "Andreas";
printf("%s\n", andreas.name);
}
使用公共成员函数,直到您需要向setter添加内容。然后使用operator =。
将其切换为一个类答案 0 :(得分:3)
使用公共成员函数,直到您需要向setter添加内容。然后使用operator =。
将其切换为一个类
因为当你需要更改它时,你的项目已经增长了百倍,现在你需要在许多不同的地方更改代码 - 甚至在其他项目中,如果你要运送一个库。
换句话说,你打破了代码。 很多代码。
即使您现在不编写库,也总是有可能在更一般的设置中重用某些代码。不要指望每一段代码都将保留在本地使用。
除此之外,没有什么大的动机可以为setter提供简单的语法,因为实际上很少需要setter。 Modern C ++致力于最大限度地减少对创建对象的更改。这使得更容易推断对象的状态,因此通常关于程序状态。这反过来又降低了复杂性,错误和维护。
答案 1 :(得分:0)
这样的开关打破了界面,这是你通常想要避免的。