Questions tagged «c++»

C ++是一种通用编程语言。它最初被设计为C的扩展,并且具有类似的语法,但是现在它是一种完全不同的语言。使用此标记可解决有关将要使用C ++编译器编译的代码的问题。对于与特定标准修订版[C ++ 11],[C ++ 14],[C ++ 17]或[C ++ 20]等相关的问题,请使用特定于版本的标记。

4
const auto有什么意思吗?
我认为问题很明确。将auto关键字自动检测常量性,或总是返回一个非const类型,即使有如。函数的两个版本(一个返回const,另一个不返回)。 仅作记录,我确实const auto end = some_container.end()在for循环之前使用过,但我不知道这是否有必要甚至与normal不同auto。
82 c++  c++11  const 


21
您最喜欢的分析工具是什么(针对C ++)?
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 到目前为止,我只使用过Rational Quantify。我听说过有关英特尔VTune的很棒的事情,但是从未尝试过! 编辑:我主要是在寻找可以检测代码的软件,因为我猜这是获得非常好的结果的唯一方法。 也可以看看: Windows上本机C ++有哪些好的分析器?



3
在C ++中,有符号整数溢出仍然是未定义的行为吗?
众所周知,有符号整数溢出是未定义的行为。但是C ++ 11cstdint文档中有一些有趣的东西: 有符号整数类型,其宽度分别精确地为8、16、32和64位,没有填充位,并且对负值使用2的补码(仅在实现直接支持该类型时提供) 见链接 这里是我的问题:由于标准明确地说,对int8_t,int16_t,int32_t和int64_t负数是2的补,还是溢出这些类型的未定义的行为吗? 编辑我检查了C ++ 11和C11标准,这是我发现的内容: C ++ 11,第18.4.1节: 标头定义了与C标准中的7.20相同的所有函数,类型和宏。 C11,第7.20.1.1节: typedef名称intN_t指定宽度为N,无填充位和二进制补码表示形式的带符号整数类型。因此,int8_t表示具有正好8位宽度的这种有符号整数类型。

15
使用std :: fill填充数量不断增加的向量
我想填充一个vector<int>using std::fill,但此向量后应包含一个数字,而不是一个值。 我尝试通过将函数的第三个参数迭代一个来实现此目的,但这只会给我一个填充有1或2的向量(取决于++运算符的位置)。 例: vector<int> ivec; int i = 0; std::fill(ivec.begin(), ivec.end(), i++); // elements are set to 1 std::fill(ivec.begin(), ivec.end(), ++i); // elements are set to 2
82 c++  stl 

5
如何在Linux中捕获分段错误?
我需要在第三方库清理操作中捕获分段错误。有时会在我的程序退出之前发生这种情况,而我无法解决此问题的真正原因。在Windows编程中,我可以使用__try-__catch做到这一点。是否有跨平台或特定于平台的方法来做到这一点?我在Linux中需要这个,gcc。

3
Qt“专用插槽”:这是什么?
我知道如何使用它,但是它的语法困扰我。“专用插槽:”在做什么? 在类定义中,我从未见过private关键字和:之间的东西。这里有一些奇特的C ++魔术吗? 这里的例子: #include <QObject> class Counter : public QObject { Q_OBJECT public: Counter() { m_value = 0; } int value() const { return m_value; } public slots: void setValue(int value); ...
82 c++  qt  signals-slots 


4
程序在在线IDE上表现异常
我遇到了以下C ++程序(源代码): #include <iostream> int main() { for (int i = 0; i < 300; i++) std::cout << i << " " << i * 12345678 << std::endl; } 它看起来像一个简单的程序,并在我的本地计算机上提供正确的输出,例如: 0 0 1 12345678 2 24691356 ... 297 -628300930 298 -615955252 299 -603609574 但是,在诸如codechef之类的在线IDE上,它提供以下输出: 0 0 1 12345678 2 24691356 …

6
继承:'A'是'B'不可访问的基础
$ cat inheritance.cpp #include <iostream> using namespace std; class A { }; class B : private A { }; int main() { A* ab = new B; } $ $ g++ inheritance.cpp inheritance.cpp: In function 'int main()': inheritance.cpp:9: error: 'A' is an inaccessible base of 'B' $ 我只是不明白这个错误。 据我所知,正如本教程所确认的,private继承仅应更改class B外部成员对成员的可见方式。 …
82 c++  inheritance 

11
有C ++的LINQ库吗?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 4年前关闭。 改善这个问题 是否有任何与平台无关的(而非CLI)运动使LINQ以某种方式适用于C ++? 我的意思是说,全世界很多服务器框架都运行在UNIX风格上,并且可以在UNIX上访问LINQ for C ++。
82 c++  linq  unix 

7
什么时候以及如何使用异常处理?
我正在阅读有关异常处理的信息。我获得了有关什么是异常处理的一些信息,但是我有几个问题: 什么时候抛出异常? 除了抛出异常,我们还可以使用返回值来指示错误吗? 如果我通过try-catch块保护所有功能,会不会降低性能? 什么时候使用异常处理? 我看到了一个项目,该项目中的每个函数都包含一个try-catch块(即,整个函数内的代码被try-catch块包围)。这是一个好习惯吗? try-catch和__try __except有什么区别?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.