问题标签 [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 投票
9 回答
655803 浏览

c++ - 什么时候应该使用 static_cast、dynamic_cast、const_cast 和 reinterpret_cast?

什么是正确的用途:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast
  • C型演员表(type)value
  • 函数式强制转换type(value)

如何决定在哪些特定情况下使用哪个?

0 投票
11 回答
75795 浏览

c++ - C++ 程序员应该了解哪些常见的未定义行为?

C++ 程序员应该了解哪些常见的未定义行为?

说,比如:

0 投票
8 回答
40892 浏览

c++ - 为什么我们实际上需要 C++ 中的 Private 或 Protected 继承?

在 C++ 中,我想不出我想从基类继承私有/受保护的情况:

真的有用吗?

0 投票
1 回答
2774524 浏览

c++ - The Definitive C++ Book Guide and List

这个问题试图收集每年出版的几十本糟糕的 C++ 书籍中的几颗珍珠。

与许多其他经常从 Internet 上找到的教程在旅途中学习的编程语言不同,很少有人能够在不学习写得很好的 C++ 书籍的情况下快速学习 C++。这样做太大太复杂了。事实上,它是如此庞大和复杂,以至于有很多非常糟糕的 C++ 书籍。而且我们不是在谈论糟糕的风格,而是在谈论明显的事实错误推广极其糟糕的编程风格

请编辑接受的答案以提供高质量的书籍和大致的技能水平 -最好 C++ 聊天室讨论您的添加之后。(如果他们不同意推荐,常客可能会无情地撤销您的工作。)为您亲自阅读/受益的每本书添加简短的宣传/描述。随意讨论质量、标题等。符合标准的书籍将被添加到列表中。有 C 和 C++ 用户协会 (ACCU) 评论的书籍有评论链接。

*注意:常见问题和其他资源可以在C++ 标签信息下找到。

0 投票
12 回答
366028 浏览

c++ - std::wstring VS std::string

我无法理解 和 之间的std::string区别std::wstring。我知道wstring支持宽字符,例如 Unicode 字符。我有以下问题:

  1. 我应该什么时候使用std::wstringover std::string
  2. 可以std::string容纳整个 ASCII 字符集,包括特殊字符吗?
  3. std::wstring所有流行的 C++ 编译器都支持吗?
  4. 究竟什么是“宽字符”?
0 投票
2 回答
47358 浏览

c++ - 派生类中具有相同名称但不同签名的函数

我有一个同名的函数,但在基类和派生类中有不同的签名。当我尝试在从派生继承的另一个类中使用基类的函数时,我收到一个错误。请参阅以下代码:

我从 gcc 编译器收到以下错误:

如果我int foo(int i){};从 class中删除B,或者如果我从 重命名它foo1,一切正常。

这有什么问题?

0 投票
17 回答
642227 浏览

c++ - 为什么模板只能在头文件中实现?

引用C++ 标准库:教程和手册

目前使用模板的唯一可移植方式是通过使用内联函数在头文件中实现它们。

为什么是这样?

(澄清:头文件不是唯一的可移植解决方案。但它们是最方便的可移植解决方案。)

0 投票
4 回答
86192 浏览

c++ - 如何在 C++ 中序列化对象?

我有一个小的对象层次结构,我需要通过套接字连接对其进行序列化和传输。我需要序列化对象,然后根据它的类型反序列化它。有没有一种简单的方法可以在 C++ 中做到这一点(就像在 Java 中一样)?

有没有 C++ 序列化在线代码示例或教程?

编辑:为了清楚起见,我正在寻找将对象转换为字节数组,然后再转换回对象的方法。我可以处理套接字传输。

0 投票
13 回答
274734 浏览

c++ - 我什么时候可以使用前向声明?

我正在寻找何时允许在另一个类的头文件中对一个类进行前向声明的定义:

我是否可以为基类、作为成员的类、通过引用传递给成员函数的类等执行此操作?

0 投票
24 回答
1287077 浏览

c++ - C++ 标准规定 int、long 类型的大小是多少?

我正在寻找有关基本 C++ 类型大小的详细信息。我知道这取决于架构(16 位、32 位、64 位)和编译器。

但是 C++ 有什么标准吗?

我在 32 位架构上使用 Visual Studio 2008。这是我得到的:

我试图在不同的架构和编译器下找到可靠的信息,说明char, short, int, long, double, float(以及我没有想到的其他类型)的大小。