gpt4 book ai didi

c++ - 对于 C++ 中的某些事物,静态函数是否可以接受?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:40 28 4
gpt4 key购买 nike

有时,对于某些事情,比如向控制台写入一行,感觉应该是所有对象都可以全局访问的东西。像这样的东西:

writeError("UNHANDLED EXCEPTION",someData);

数学函数之类的东西也有这种感觉。但是,当做这种事情变成不好的做法时,您如何划清界限?

最佳答案

有些人在非成员函数需要成为其参数之一的友元这一点上划清界线,因此他们使用了很多自由函数。

有些人在非成员函数可以合理地成为其参数之一的成员函数这一点上划清界线,即使它实际上并不使用类内部结构。它们的免费功能要少一些。

通常最好不要将此视为“成为不好的做法”——并非所有 C++ 中的设计都是“恰本地”面向对象的。如果您的任务最好通过 OOP 以外的方式解决,那么使用 OOP 本身就是“不好的做法”。关于如何最好地设计您的代码的争论可以在任何语言中无限期地继续下去,但 C++ 并没有做出任何特别的努力来引导您编写类。

另见:

Effective C++ Item 23 Prefer non-member non-friend functions to member functions

关于c++ - 对于 C++ 中的某些事物,静态函数是否可以接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6201807/

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