问题标签 [c++-faq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
9840 浏览

c++ - 如何防止通过“新”运算符分配类?(我想确保我的 RAII 类始终分配在堆栈上。)

我想确保我的 RAII 类始终分配在堆栈上。

如何防止通过“新”运算符分配类?

0 投票
6 回答
13161 浏览

c++ - 是否可以防止对象的堆栈分配,只允许用“new”实例化它?

是否可以防止对象的堆栈分配并只允许在堆上使用“new”来启动它?

0 投票
9 回答
377372 浏览

c++ - C++ 中的 POD 类型是什么?

我曾多次遇到过 POD 类型这个术语。
这是什么意思?

0 投票
9 回答
104281 浏览

c++ - 为什么在宏中使用看似毫无意义的 do-while 和 if-else 语句?

在许多 C/C++ 宏中,我看到宏的代码被包裹在一个看似毫无意义的do while循环中。以下是示例。

我看不到do while它在做什么。为什么不直接写这个呢?

0 投票
16 回答
262964 浏览

c++ - C++ 是否支持“最终”块?(我一直听到的这个“RAII”是什么?)

C++ 是否支持“ finally ”块?

什么是RAII 成语

C++ 的 RAII 习语和C# 的“使用”语句有什么区别?

0 投票
9 回答
35070 浏览

c++ - 带空括号的默认构造函数

是否有充分的理由表明一组空的圆括号(括号)对于调用 C++ 中的默认构造函数无效?

我似乎每次都自动输入“()”。有充分的理由不允许这样做吗?

0 投票
13 回答
227554 浏览

c++ - "std::endl" 与 "\n"

许多 C++ 书籍都包含这样的示例代码......

...所以我也一直这样做。但是我已经看到很多这样的工作开发人员的代码:

是否有技术上的理由比另一个更喜欢一个,或者这只是编码风格的问题?

0 投票
5 回答
299949 浏览

c++ - 在 C++ 标识符中使用下划线的规则是什么?

在 C++ 中,使用某种前缀来命名成员变量是很常见的,以表示它们是成员变量,而不是局部变量或参数。如果您来自 MFC 背景,您可能会使用m_foo. 我也myFoo偶尔看到。

C#(或者可能只是 .NET)似乎建议只使用下划线,如_foo. 这是 C++ 标准允许的吗?

0 投票
18 回答
222233 浏览

c++ - 什么是对象切片?

有人在 IRC 中将其称为切片问题。

0 投票
5 回答
6824 浏览

c++ - 正确替换 C++ 中缺失的“finally”

由于finallyC++中没有,因此如果您希望代码具有异常安全性,则必须改用 RAII设计模式。一种方法是使用本地类的析构函数,如下所示:

与直接解决方案相比,这是一个很大的优势,因为您不必编写 2 次清理代码:

本地类解决方案的一大缺点是您不能直接访问清理代码中的局部变量。因此,如果您需要访问它们,它将使您的代码膨胀很多:

所以我的问题是:有没有结合这两种优势的解决方案?这样您 a) 不必编写重复的代码,并且 b) 可以访问清理代码中的局部变量,就像task在上一个示例中一样,但没有这样的代码膨胀。