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

c++ - const int*、const int * const 和 int const * 有什么区别?

我总是搞砸如何正确使用const int*,const int * constint const *。是否有一套规则来定义你能做什么和不能做什么?

我想知道在分配、传递给函数等方面的所有注意事项。

0 投票
4 回答
17385 浏览

c++ - 为什么派生模板类不能访问基模板类的标识符?

考虑:

我无法使用 GCC g++ 3.4.4 (cygwin) 编译它。

在将这些转换为类模板之前,它们是非泛型的,派生类能够看到基类的静态成员。这是 C++ 规范要求中的可见性损失还是我需要采用的语法更改?

我知道每个实例化Base<T>都会有它自己的静态成员“ ZEROFILL”和“ NO_ZEROFILL”,它们是不同的变量Base<float>::ZEROFILLBase<double>::ZEROFILL但我真的不在乎;常量用于代码的可读性。我想使用静态常量,因为它在名称冲突方面比宏或全局更安全。

0 投票
3 回答
76401 浏览

c++ - 构造函数初始化列表评估顺序

我有一个带有一些参数的构造函数。我曾假设它们是按列出的顺序构建的,但在一种情况下,它们似乎是反向构建的,导致中止。当我颠倒参数时,程序停止中止。这是我正在使用的语法示例。问题是,在这种情况下,a_ 需要在 b_ 之前初始化。能保证施工顺序吗?

例如

0 投票
5 回答
19640 浏览

c++ - 在 C++ 中使用 bool/fail 将字符串转换为 int

我有一个std::string它可以是一个字符串或一个值(例如0)。

将失败转换std::stringint具有失败能力的最佳或最简单的方法是什么?我想要 C# 的 C++ 版本Int32.TryParse

0 投票
9 回答
160163 浏览

c++ - 什么是外联动和内联动?

我想了解外部联系和内部联系以及它们的区别。

我也想知道是什么意思

const默认情况下,变量在内部链接,除非另外声明为extern.

0 投票
25 回答
409064 浏览

c - 定义和声明有什么区别?

两者的含义都让我无法理解。

0 投票
41 回答
1026963 浏览

c++ - 为什么是“使用命名空间标准;” 被认为是不好的做法?

其他人告诉我,using namespace std;用代码编写是错误的,我应该直接使用std::coutand std::cin

为什么被using namespace std;认为是不好的做法?它是效率低下还是有可能声明模棱两可的变量(与std命名空间中的函数具有相同名称的变量)?它会影响性能吗?

0 投票
2 回答
7381 浏览

c++ - 特定成员的模板专业化?

是否可以专门化模板类的特定成员?就像是:

当然,此代码无效。

0 投票
3 回答
38587 浏览

c++ - 哪些 iomanip 操纵器是“粘性的”?

我最近在创建 a 时遇到了问题stringstream,因为我错误地假设std::setw()每次插入都会影响字符串流,直到我明确更改它。但是,插入后它始终未设置。

所以,我有几个问题:

  • 为什么会setw()这样?
  • 其他机械手也这样吗?
  • std::ios_base::width()和之间的行为有区别std::setw()吗?
  • 最后是否有明确记录这种行为的在线参考资料?我的供应商文档(MS Visual Studio 2005)似乎没有清楚地表明这一点。
0 投票
11 回答
105023 浏览

c++ - 为什么非常量引用不能绑定到临时对象?

为什么不允许获取对临时对象的非常量引用,哪个函数getx()返回?显然,这是 C++ 标准禁止的,但我对这种限制的目的感兴趣,而不是对标准的引用

  1. 很明显,对象的生命周期不能成为原因,因为C++ 标准不禁止对对象的常量引用。
  2. 很明显,上述示例中的临时对象不是常量,因为允许调用非常量函数。例如,ref()可以修改临时对象。
  3. 此外,ref()允许您欺骗编译器并获得指向此临时对象的链接,从而解决了我们的问题。

此外:

他们说“将一个临时对象分配给 const 引用会延长该对象的生命周期”和“尽管对非 const 引用什么也没说”。我的附加问题。以下分配是否会延长临时对象的生命周期?