为什么我们实际上需要 C++ 中的 Private 或 Protected 继承?
在 C++ 中,我想不出我想从 a 继承 private/protected 的情况 基类: class Base; class Derived1 : private Base; class Derived2 : protected Base;…
正确替换丢失的“终于” 在 C++
由于 C++ 中没有 finally 你必须使用如果您希望代码异常安全,请改用 RAII 设计模式。 实现此目的的一种方法是使用本地类的析构函数,如下所示: void…
什么时候应该使用static_cast、dynamic_cast、const_cast和reinterpret_cast?
正确的用法是什么: static_cast dynamic_cast const_cast reinterpret_cast (type)value (C 风格转换) type(value)(函数式转换) 如何决定在特定…
在 C++ 中使用下划线的规则是什么? 标识符?
在 C++ 中,使用某种前缀来命名成员变量是很常见的,以表示它们是成员变量,而不是局部变量或参数。 如果您有 MFC 背景,您可能会使用 m_foo。 我偶尔…
“std::endl” 与“\n”相比
许多 C++ 书籍都包含这样的示例代码... std::cout << "Test line" << std::endl; ...所以我也总是这样做。 但我已经看到很多来自工作开发人员的代码,…
如何删除类似 const 和非常量成员函数之间的代码重复?
假设我有以下 class X,我想在其中返回对内部成员的访问权限: class Z { // details }; class X { std::vector vecZ; public: Z& Z(size_t index) { …
为什么在宏中使用明显无意义的 do-while 和 if-else 语句?
在许多 C/C++ 宏中,我看到宏的代码包裹在看似无意义的 do while 循环中。 以下是示例。 #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X…