Questions tagged «c++»

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



13
系统(“暂停”);-为什么错了?
这是我不太了解的问题: system("pause");向新程序员讲授该命令,作为暂停程序并等待键盘输入继续的一种方式。但是,许多资深程序员似乎不赞成这样做,因为这不应在不同程度上进行。 有人说可以使用。有人说,仅当您被锁在房间内且没人在看的时候才使用它。有人说,如果您使用它们,他们会亲自来到您家杀死您。 我本人是一名新程序员,没有经过正式的编程培训。我使用它是因为我被教导要使用它。我不明白的是,如果不使用它,为什么要教我使用它?或者,从另一方面来说,这真的不是那么糟糕吗? 您对此主题有何看法?
131 c++ 

20
错误LNK2038:检测到“ _ITERATOR_DEBUG_LEVEL”不匹配:值“ 0”与main.obj中的值“ 2”不匹配
我已经阅读了很多解决我的问题的方法,但是都没有帮助。我尝试清洁,重建。重新安装了Visual 2010,并从专业版更改为最终版。但是我仍然不知道为什么会有这个错误。我的项目如下所示:1 Exe解决方案,用于测试我的静态库。1 Dll解决方案静态库。转换为dll的代码使用的是来自1个lib的函数,称为ClassificationFramework。我将此lib作为标头和cpp提供,因此基本上是源代码。在Exe解决方案中,我链接了生成的库+一些其他的库以运行它+ ClassificationFramework.dll。当我使用Release时一切正常,但是当我更改为Debug时(因为我想调试一些东西,我厌倦了在发布模式下跳过调试器),我得到了: 2>Link: 2> ClassificationFramework.lib(SampleClass.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 2>ClassificationFramework.lib(SampleClass.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in main.obj 2>ClassificationFramework.lib(SampleNamesSet.obj) : …
131 c++  debugging  linker 


8
正式来说,typename是做什么用的?
有时候,我看到gcc使用模板时会吐出一些真正难以理解的错误消息...具体来说,我遇到了一些问题,其中看似正确的声明导致了非常奇怪的编译错误,这些错误通过在typename关键字的开头加上前缀而神奇地消失了。声明...(例如,就在上周,我将两个迭代器声明为另一个模板化类的成员,因此我必须这样做)... 这是什么故事typename?
131 c++  templates 

4
GCC的默认包含目录是什么?
当我使用gcc编译非常简单的源文件时,无需指定标准包含文件(例如stdio或stdlib)的路径。 GCC如何知道如何找到这些文件? 它/usr/include内部是否具有硬连线的路径,还是会从其他OS组件获取路径?
131 c++  c  linux  gcc  include-path 

6
Visual Studio如何处理删除的指针,为什么?
我正在阅读的一本C ++书指出,当使用delete操作符删除指针时,指向该位置的内存将被“释放”,并且可以覆盖。它还指出,指针将继续指向相同的位置,直到将其重新分配或设置为为止NULL。 但是在Visual Studio 2012中;事实并非如此! 例: #include <iostream> using namespace std; int main() { int* ptr = new int; cout << "ptr = " << ptr << endl; delete ptr; cout << "ptr = " << ptr << endl; system("pause"); return 0; } 当我编译并运行该程序时,将得到以下输出: ptr = 0050BC10 ptr = 00008123 …

4
在调用std :: numeric_limits <unsigned char>成员之前,一元“ +”的作用是什么?
我在cppreference的文档中看到了以下示例std::numeric_limits #include &lt;limits&gt; #include &lt;iostream&gt; int main() { std::cout &lt;&lt; "type\tlowest()\tmin()\t\tmax()\n\n"; std::cout &lt;&lt; "uchar\t" &lt;&lt; +std::numeric_limits&lt;unsigned char&gt;::lowest() &lt;&lt; '\t' &lt;&lt; '\t' &lt;&lt; +std::numeric_limits&lt;unsigned char&gt;::min() &lt;&lt; '\t' &lt;&lt; '\t' &lt;&lt; +std::numeric_limits&lt;unsigned char&gt;::max() &lt;&lt; '\n'; std::cout &lt;&lt; "int\t" &lt;&lt; std::numeric_limits&lt;int&gt;::lowest() &lt;&lt; '\t' &lt;&lt; std::numeric_limits&lt;int&gt;::min() &lt;&lt; '\t' &lt;&lt; std::numeric_limits&lt;int&gt;::max() &lt;&lt; '\n'; std::cout &lt;&lt; …
130 c++  char  unary-operator 



29
避免C ++中内存泄漏的一般准则
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 有什么常规提示可确保我不会泄漏C ++程序中的内存?我如何确定谁应该释放已经动态分配的内存?



4
布尔到整数的转换
这种转换的可移植性。我可以确定两个断言都通过了吗? int x = 4&lt;5; assert(x==1); x = 4&gt;5; assert(x==0); 不要问为什么。我知道这很丑。谢谢。
130 c++  c  c99 

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.