相关疑难解决方法(0)

为什么要使用getter和setter/accessors?

使用getter和setter的优点是什么 - 只能获取和设置 - 而不是简单地使用公共字段来存储这些变量?

如果getter和setter做的不仅仅是简单的get/set,我可以非常快地解决这个问题,但我并不是100%清楚如何:

public String foo;
Run Code Online (Sandbox Code Playgroud)

更糟糕的是:

private String foo;
public void setFoo(String foo) { this.foo = foo; }
public String getFoo() { return foo; }
Run Code Online (Sandbox Code Playgroud)

而前者需要很少的样板代码.

java oop getter setter abstraction

1472
推荐指数
26
解决办法
37万
查看次数

您遇到过的最糟糕的真实世界宏/预处理器滥用情况是什么?

您遇到的最糟糕的 现实世界宏/预处理器滥用是什么(请不要设想IOCCC答案*哈哈*)?

如果它真的很有趣,请添加一个简短的片段或故事.目标是教一些东西,而不是总是告诉人们"永远不要使用宏".


ps:之前我曾经使用过宏...但是当我有一个"真正的"解决方案时,我最终会摆脱它们(即使真正的解决方案是内联的,它也会变得类似于宏).


额外:举一个例子,宏实际上比非宏解决方案更好.

相关问题: C++宏什么时候有用?

c c++ macros preprocessor

176
推荐指数
36
解决办法
11万
查看次数

C++宏什么时候有用?

ç预处理器有理由担心和C++社区避之唯恐不及.内联功能,功能和模板通常是更安全和更好的替代品#define.

以下宏:

#define SUCCEEDED(hr) ((HRESULT)(hr) >= 0)  
Run Code Online (Sandbox Code Playgroud)

绝不是优于安全类型:

inline bool succeeded(int hr) { return hr >= 0; }
Run Code Online (Sandbox Code Playgroud)

但宏确实有它们的位置,请列出您为宏找到的用途,如果没有预处理器,您就无法做到.

请将每个用例放在一个单独的答案中,以便可以进行投票,如果您知道如何在没有预备教授的情况下实现其中一个答案,请指出该答案的评论.

c++ c-preprocessor

171
推荐指数
19
解决办法
9万
查看次数

标签 统计

c++ ×2

abstraction ×1

c ×1

c-preprocessor ×1

getter ×1

java ×1

macros ×1

oop ×1

preprocessor ×1

setter ×1