effective-c++相关内容

为什么 argc 不是常数?

int main(const int argc, const char[] const argv) Effective C++ Item#3 声明“尽可能使用 const",我开始思考“为什么不让这些‘常量’参数const"?. 有没有在程序中修改argc的值的场景? 解决方案 在这种情况下,历史是一个因素.C 将这些输入定义为“非常量",并且与(大部分)现有 C 代码的兼容性是 ..
发布时间:2022-01-23 23:37:26 C/C++开发

有效的 C++“35.最小化文件之间的编译依赖性".今天还有效吗?

在这一章中,Scott Meyer 提到了一些避免头文件依赖的技术.如果更改仅限于其他包含的头文件,主要目标是避免重新编译 cpp 文件. 我的问题是: 在我过去的项目中,我从未关注过这条规则.编译时间不短但也不是不能忍受.这可能与我的项目的规模(或缺乏)有关.鉴于编译器技术(例如 clang)的进步,今天这个技巧有多实用? 在哪里可以找到更多使用此技术的示例?(例如 Gnome ..
发布时间:2022-01-11 16:54:59 C/C++开发

有效C ++“。最小化文件之间的编译依赖性“。它今天仍然有效吗?

在本章中,Scott Meyer提到了一些避免头文件依赖的技术。 我的问题是: $ b b 在我以前的项目中,我从来没有注意到这个规则。编译时间不短,但不是不能容忍。它可能与我的项目的规模(或缺乏)有关。 在哪里可以找到更多使用这种技术的例子? (例如Gnome或其他OSS项目) 我使用的是第二版。 解决方案 我不认为编译器技术有进步。 clang不是一些魔法 ..
发布时间:2016-10-23 13:50:19 C/C++开发

读取的首选顺序是有效,更有效,有效的现代C ++(和STL)?

我理解更有效的C ++是有效C ++的扩展,而有效的现代C ++专注于C ++ 11& 14.作为一个新手的语言,刚刚从这些书开始,我应该读取有效现代后前两个?此外,有效的STL应该在哪里适合? 阅读上述书籍的首选顺序是什么,因为每本书都建立在以前书籍的内容上? 此外,有效现代C ++认为一个非官方的下一版的有效C ++? 解决方案 这个问题的答案可以从图书等中搜集。总结页面在 ..
发布时间:2016-10-23 13:13:01 C/C++开发

有效的C ++:阻止保护继承?

我正在阅读Scott Meyers的 Effective C ++ (第三版),并在项目32中的一段中:确保公共继承是“is-a” 151他发表了评论(我用粗体表示): 这只适用于 public 遗产。 C ++将表现为我已经描述,只有当学生是公开派生自人。私人继承意味着完全不同的东西(见第39条),和受保护的继承是我今天的意义。 问题:我应该如何解读此评论? (我读过这个问题 ..
发布时间:2016-10-22 18:05:43 C/C++开发

是有效的C ++仍然有效吗?

根据我在这篇文章中看到的内容,我决定开始阅读此书有效的C ++ 。 但现在有很多新的功能,因为C ++ 11和一些好的做法改变,我不知道它是否是一个好主意。 C ++ 11的出现是否废弃了Effective C ++中包含的任何建议? 解决方案 这是Scott Meyers自己不得不说的话在自己的博客 这可能会让你想知道 中的信息和建议是否有效C ++的C ++ 0x版本仍然 ..
发布时间:2016-10-22 17:09:39 C/C++开发

函数式宏和奇怪的行为

我已经开始阅读Effective C ++,在第2项中的某一点,提到以下内容: // call f具有最大值a和b #define CALL_WITH_MAX(a,b)f((a)>(b)?(a):(b)) ... int a = 5,b = 0; CALL_WITH_MAX(++ a,b); // a增量两次 CALL_WITH_MAX(++ a,b + 10); ..
发布时间:2016-10-20 22:07:50 C/C++开发

转发声明包括,在声明之上include(ClassFwd.h + Class.h)

在有效C ++(第三版)中,Scott Meyers在第31项中建议,类在经典的声明(.h)和定义(.cpp)文件之上应该有一个向前声明包含文件(fwd。 h),这个类不需要完整的定义可以使用,而不是向前声明自己。 我有点看到它的情况,但我真的不看到这是一个可行的选择...它似乎很难维护,而不是过度,而且几乎不必要。 然而,我可以看到它的用途模板转发声明,它们相当重。但是对于简单的类? ..
发布时间:2016-10-14 12:57:48 C/C++开发

为什么argc不是常数?

int main(const int argc,const char [] const argv) 由于 Effective C ++ 项目#3说明“尽可能使用const”,我开始思考“为什么不会使这些“常量”参数 const “?。 解决方案 在这种情况下,历史记录是一个因子。 C将这些输入定义为“非常量”,并且与现有C代码的(很大一部分)的兼容性是C + ..
发布时间:2016-10-14 11:48:49 C/C++开发

Effective C ++ Item 23首选成员函数的非成员非朋友函数

虽然对类设计的一些事实感到困惑,特别是函数是否应该是成员,我研究了Effective c ++,发现了Item 23,即将非成员非朋友函数优先于成员函数。首先用Web浏览器示例读取一些意义,但是在该示例中方便的函数(在这本书中命名为非成员函数)改变了类的状态,不是吗? 再仔细看一下,他认为STL函数和某些类没有实现的某些函数在stl中实现。根据这本书的想法,他们演变成一些方便的函数,它们包装在一些 ..