- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Scott Meyer 关于非成员函数增加封装并允许更优雅的设计(设计方面)的论点对我来说似乎非常有效。看这里:Article
但是我对此有疑问。 (似乎还有其他人,尤其是库开发人员,他们通常完全忽略这一点)
当我使用成员函数时,代码通常看起来更好、更合乎逻辑。不过,这可能是一种后天习得的品味,只是需要一些时间来习惯先查看算法,然后再查看对象。 (颤抖)
所以也许我只有一个问题:
有了成员函数,我 和我的 IDE 就知道类可以做什么。
对我来说,这是巨大的!我使用任何不支持成员函数代码完成的东西来编程。在设计良好的库中,它完全取代了我的文档。即使我会查看 api 文档,浏览成员列表也感觉绝对自然、合乎逻辑,我可以确定,好吧,这就是结束。如果方法不在那里,我可以放心地假设它不存在,我可以写我的非成员(member)非 friend 。
我在 STL 中容忍了这一点,因为,好吧,将算法与基本组件分开看是有意义的,而且你会习惯它的因素。
我还没有看到一个 IDE 可以告诉我哪些非成员函数在特定类上起作用。
这实际上是我的问题:是否有 IDE(或 IDE 功能)有助于此代码约定?
最佳答案
我过去遇到过这种事情。
当时我的想法相当笨拙,但完成了工作: namespace 。
我做的是
namespace myclass
{
class MyClass
{
...
};
MyClass operator+(const MyClass& lhs, const MyClass& rhs){...}
}
关于支持 Scott Meyer 建议的 C++ IDE : Prefer non-member non-friend functions over members,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1714317/
Meyers Singleton 是否适用于有动态库的场景? IE。一个定义单例的库,其他人使用它,每个都在自己的编译单元中? (我想这无关紧要,但具体架构是 OS X 上带有框架的应用程序) 我正在
我已经阅读了很多关于单例的文章,它们应该在什么时候使用,什么时候不应该使用,以及如何安全地实现它们。我正在用 C++11 编写,并且遇到了 Meyer 的单例延迟初始化实现,如 this questi
是否可以使用参数定义 Meyer 的单例(如 this one)? 我知道 GOF 风格的单例(如 here )是可能的, 但我似乎无法让它与 Meyer 的单例一起工作: // ... public
Meyer 的单例类蓝图在头文件 temp.h 中声明。如果 temp.h 包含在两个单独的 .cpp 文件中,那么每个文件都有自己的蓝图,并且静态的东西对其他模块(即 *.o 或 *.cpp)不可见
到以下代码: class C { public: static C& Instance() { static C c; return c; }
假设我有一个类: class C{ int x_; int y_; public: C(int x, int y): x_(x), y_(y){} }; 然后我想从一个字符串中添加结构,它
我的代码: template class Singleton { public: static T& instance() { static T obj; re
我继承了一些在 g++ 9 和 10 下编译良好的代码,但是当打开优化时,两个编译器都会出现运行时错误(也就是说,编译 -O0 有效,但编译 -Og 会给出来自 MMU 的运行时错误.) 问题是在一个
我过来了this question最近,对 Instance() 函数的实现产生了疑问: class Configuration { public: static Configuration*
上周有人指出我有一段代码是这样的: #include namespace NSTest { class SingletonClass { public: static SingletonCl
我有以下实现基本 Meyers 单调的代码: #ifndef _cConfigFile_HH #define _cConfigFile_HH class cConfigFile { public:
Singleton(Meyers 的 Singleton)的以下使用惰性初始化的实现是否线程安全? static Singleton& instance() { static Singlet
我有一个在 Meyers 单例中运行的 boost 线程。它在我的程序期间愉快地运行。 当我的 Singleton 的析构函数被调用时(当程序加载出内存时)我设置了一个标志以便线程应该退出它的循环并触
Singleton(Meyers 的 Singleton)的以下使用惰性初始化的实现是否线程安全? static Singleton& instance() { static Singlet
我正在阅读 S. Meyers 的书“Effective C++。55 specific ways...”(第 3 版)。这本书中的某些内容,在规则 11 中,我不明白。所以,在下一个代码部分: Wi
我正在关注 Item6,它是 Scott Meyers 着的 Effective STL: 50 Specific Ways to Improve Your Use of the Standard T
我只是尝试使用 Scott Meyers 在“Effectice C++ in an Embedded Environment”中建议的 placement new 运算符。 DefaultM
我正在阅读 std::shared_ptr在Effective Modern C++14 Scott Meyers 的书。这是一段代码,作者说其中可能存在资源泄漏: int computePriori
Singleton(Meyers 的 Singleton)线程的以下使用延迟初始化的实现是否安全? static Singleton& instance() { static Singlet
所以我读了很多关于为什么这个实现不是线程安全的。但是我没有找到如何使其线程安全快速的答案?使其线程安全的变体是添加互斥体(或者在某些情况下,只需关键部分就足够了),但这会使该方法慢得多。那么是否有一种
我是一名优秀的程序员,十分优秀!