问题标签 [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.
c++ - 什么时候应该使用 static_cast、dynamic_cast、const_cast 和 reinterpret_cast?
什么是正确的用途:
static_cast
dynamic_cast
const_cast
reinterpret_cast
- C型演员表
(type)value
- 函数式强制转换
type(value)
如何决定在哪些特定情况下使用哪个?
c++ - C++ 程序员应该了解哪些常见的未定义行为?
C++ 程序员应该了解哪些常见的未定义行为?
说,比如:
c++ - 为什么我们实际上需要 C++ 中的 Private 或 Protected 继承?
在 C++ 中,我想不出我想从基类继承私有/受保护的情况:
真的有用吗?
c++ - The Definitive C++ Book Guide and List
这个问题试图收集每年出版的几十本糟糕的 C++ 书籍中的几颗珍珠。
与许多其他经常从 Internet 上找到的教程在旅途中学习的编程语言不同,很少有人能够在不学习写得很好的 C++ 书籍的情况下快速学习 C++。这样做太大太复杂了。事实上,它是如此庞大和复杂,以至于有很多非常糟糕的 C++ 书籍。而且我们不是在谈论糟糕的风格,而是在谈论明显的事实错误和推广极其糟糕的编程风格。
请编辑接受的答案以提供高质量的书籍和大致的技能水平 -最好 在 C++ 聊天室讨论您的添加之后。(如果他们不同意推荐,常客可能会无情地撤销您的工作。)为您亲自阅读/受益的每本书添加简短的宣传/描述。随意讨论质量、标题等。符合标准的书籍将被添加到列表中。有 C 和 C++ 用户协会 (ACCU) 评论的书籍有评论链接。
c++ - std::wstring VS std::string
我无法理解 和 之间的std::string
区别std::wstring
。我知道wstring
支持宽字符,例如 Unicode 字符。我有以下问题:
- 我应该什么时候使用
std::wstring
overstd::string
? - 可以
std::string
容纳整个 ASCII 字符集,包括特殊字符吗? std::wstring
所有流行的 C++ 编译器都支持吗?- 究竟什么是“宽字符”?
c++ - 派生类中具有相同名称但不同签名的函数
我有一个同名的函数,但在基类和派生类中有不同的签名。当我尝试在从派生继承的另一个类中使用基类的函数时,我收到一个错误。请参阅以下代码:
我从 gcc 编译器收到以下错误:
如果我int foo(int i){};
从 class中删除B
,或者如果我从 重命名它foo1
,一切正常。
这有什么问题?
c++ - 如何在 C++ 中序列化对象?
我有一个小的对象层次结构,我需要通过套接字连接对其进行序列化和传输。我需要序列化对象,然后根据它的类型反序列化它。有没有一种简单的方法可以在 C++ 中做到这一点(就像在 Java 中一样)?
有没有 C++ 序列化在线代码示例或教程?
编辑:为了清楚起见,我正在寻找将对象转换为字节数组,然后再转换回对象的方法。我可以处理套接字传输。
c++ - 我什么时候可以使用前向声明?
我正在寻找何时允许在另一个类的头文件中对一个类进行前向声明的定义:
我是否可以为基类、作为成员的类、通过引用传递给成员函数的类等执行此操作?
c++ - C++ 标准规定 int、long 类型的大小是多少?
我正在寻找有关基本 C++ 类型大小的详细信息。我知道这取决于架构(16 位、32 位、64 位)和编译器。
但是 C++ 有什么标准吗?
我在 32 位架构上使用 Visual Studio 2008。这是我得到的:
我试图在不同的架构和编译器下找到可靠的信息,说明char
, short
, int
, long
, double
, float
(以及我没有想到的其他类型)的大小。