Questions tagged «c++»

有关C ++的问题,C ++是一种静态类型,自由格式,多范式,已编译的通用编程语言。

3
对于需要大量RAM的应用程序选择C ++还是Java?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我正在考虑的科学应用程序大多受处理器限制,并且堆使用量很大(至少几个GB)。在一年中的任何其他时间,我都会很高兴地使用C ++,但是在这种情况下,我想知道,与Java压缩收集器的优势相比,C ++内存管理器的自然碎片是否会成为一个严重的问题。 有人可以指出与此相关的真实示例吗?
11 java  c++  memory  big-data 

3
CRTP是否使用了很多?以及为什么是/不是?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我正在考虑奇怪地重复使用模板模式。 我发现它非常有用,并且对于许多任务来说都可以很好地调整。但是我必须承认,我没有看到很多CRTP代码。 很难把握吗?虚拟功能总体上是否更容易?90%出现虚拟关键字的情况下,是否应该使用它?

4
是否应该使用“ make clean”而不是“ make”的通用规则?
我现在正在编写一个多文件程序,并且由于某种原因导致我的程序失败,显然只运行“ make”(因为在大多数情况下人们会直观地认为需要这样做)。我想我可以提供有关该问题的更多详细信息,但重要的是它在使用“ make clean”时确实可以运行。所以我想知道是否有人知道运行“ make clean”而不是“ make”的一般经验法则
11 c++  builds  make 

6
选择索引变量的类型
我们大多数时候使用Integer类型表示索引变量。但是在某些情况下,我们不得不选择 std::vector<int> vec; .... for(int i = 0; i < vec.size(); ++i) .... 这将导致编译器发出混合使用有符号/无符号变量的警告。如果将index变量设置为for( size_t i = 0; i < vec.size(); i++ ),(或unsigned int)它将解决问题。 当更加具体地使用Windows类型时,大多数Windows API都在处理DWORD(类型定义为unsigned long)。 因此,当我使用类似的迭代时,将再次引起相同的警告。现在,如果我将其重写为 DWORD dwCount; .... for(DWORD i = 0; i < dwCount; ++i) .... 我觉得这有点奇怪。感知可能是问题。 我同意我们应该使用相同类型的索引变量,以避免索引变量可能发生范围问题。例如,如果我们使用 _int64 i64Count; // .... for(_int64 i = 0; …
11 c++ 


3
通用编程,在工业中使用的频率
目前,我在学术环境中进行编程,因此我可以使用任何我想使用的东西。我在使用Boost图形库做一些事情,并且想知道是否值得花更多的精力来更深入地了解GP。 我很好奇-通用编程(GP)在行业中使用率很高吗?我的猜测是,大多数程序员更喜欢OOP或使用不强调或不支持GP的语言,因此,除了在C ++中调用STL数据结构/函数外,我的印象是GP并不是经常使用在实践中。但是,由于目前不在行业内,因此很高兴听到从业者的来信。 (在撰写本文时,我看到通用编程甚至不是有效的标签!)

7
结构化编程与OO编程
我正在做一个演示,以显示结构化编程和面向对象编程之间的差异,并且我想以一个示例说明为什么人们需要OOP,在该示例中,应用OOP概念将使编码变得更加容易,从而使听众真正感到他们需要OOP。 有任何想法吗 ??

9
有关代码文档生产率收益/损失的研究
经过大量搜索,我未能回答与软件开发领域中已知的假设有关的基本问题: 什么是已知的: 对足够的代码文档(无论是Doxygen标记,Javadoc还是仅仅是大量注释)实施严格的政策,都会增加开发代码所需的时间。 但: 拥有详尽的文档(甚至API),可以在新手和经验丰富的开发人员添加功能或修复bug时带来生产率的提高(有人认为)。 问题: 保证此类文档所需的额外开发时间是否能被下游生产率的提高(从严格的经济意义上来说)所抵消? 我正在寻找案例研究或答案,可以带给他们客观的证据来支持得出的结论。 提前致谢!

10
Java或C ++用于大学CS课程?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我正努力进入学校攻读CS学位。我所看的学校实际上为基础软件开发课程提供了基于Java和C ++的基础(面向对象的编程,设计模式之类的东西)。哪一条路是学生的选择,但只有时间去追踪。 知道了现在所知道的,如果可以选择的话,您是否会奠定Java或C ++的CS课程基础? 我当前的辩论目前看起来像这样: 一位好朋友(拥有AI博士学位)将Java视为更好的选择,而不管我做什么,只要稍后才提供更多的工作机会,尽管他可能因为所有工作都在Java中而有所偏见(他喜欢它)。我住在美国马萨诸塞州波士顿地区,并且看到相等数量的Java和C工作。 另一方面,虽然我还没有完全确定要完成的学位课程,但我倾向于为Mac开发,尽管能力有限,但我现在正在做。为此,我已经对C ++有了一定的了解,但是我还没有使用Java,并且在我的日常工作中查看我的项目时,我很快就认为不需要很快使用它了。至少两年。 我可能应该注意,我是一个成年人,在20年后重返学校(目前我没有任何学位),因此我正在寻求最大程度地利用机会和时间。我有点倾向于C ++,但是我仍然很矛盾,有些外部的客观建议会有所帮助。 或者,我可能只是在考虑这个问题。 更新:事实证明,语言选择不是我最初认为的那么明确。尽管有几门核心课程侧重于Java,但其他一些核心课程则主要针对C和Java,但也有一些其他核心课程相当不错。实际上,在花时间学习Java和Javascript之后,我的剩余学期将是在Objective-C中。上学期是C,Javascript和PHP,另外还有一些其他作业根据需要分配。由于事情在总体上几乎是分散的,而且我仍然可以得到答案,所以我现在正在努力设计课程,以便满足学位的所有要求,但要吸收尽可能多的语言。 。到目前为止,我的成绩并未受到影响。
11 java  c++  education 

2
如何正确管理C / C ++项目的依赖关系?
我有一个使用3-4个不同的开源C / C ++库的项目。 我为多个平台构建了这些库,并在我的项目中检入了针对不同平台的包含文件和静态库。 但是,我遇到了两个问题。所有这些项目都与依赖项管理有关。我正在寻找最佳实践建议。 1)我怎么知道我到底使用什么? 我没有办法获得静态库的版本。结果,我需要以某种方式跟踪我正在使用哪个版本的静态库(可能是生成它的提交的SHA)? 当我需要确定何时升级这些库时,这一点尤其重要。 2)如何复制构建? 我可能很难为特定平台构建一些特定库。我花了一段时间才弄清楚。 下次需要构建相同的库可能需要半年时间(无论出于何种原因都需要升级。但是,到那时,我绝对不会记住任何东西以及构建它的环境将早已不复存在。 3)我应该分叉这些库以获取源代码的副本吗? 这是一个较小的问题。但是,这仍然是一个问题。确保构建是可复制的(这需要源代码)是一件很高兴的事。

2
为什么在读取文件的最后一行后ifstream.eof()不返回TRUE?
当初学者开始阅读ifstreams时,他/她的本能是使用通常如下所示的循环来读取文件: while (!ifstream.eof() { ... } 但是,当我使用此代码时,我注意到它直到读取了文件的最后一行两次才停止。C ++程序员注意到,这实际上并不是读取文件的方式。相反,他们通常建议需要读取文件的人使用这样的循环: while (ifstream >> someVar) { ... } 为什么第一段代码总是无法正常工作?
11 c++ 

1
C ++中的静态全局变量和匿名名称空间
为什么在引入静态全局变量(内部链接)和未命名的命名空间中的符号(外部链接,无论如何都无法从外部引用它)之间进行区分? 这些原因是否仍然有效,还是有新的原因? 除了匿名全局(或命名空间范围)联合必须具有static的任意规则之外,还剩下什么地方,它们又是什么? 对于积分,如果没有充分的理由使它们有所不同,是否有要求使它们相等的要求? 当C ++引入名称空间(C ++ 98),特别是未命名的名称空间时,由于热情高涨,静态全局变量被弃用,不如新事物,尽管C ++ 11对此进行了还原: 弃用static关键字…不再? 在C ++ 11之前,不能将具有内部链接的符号用作模板参数:为什么C ++ 03要求模板参数具有外部链接?

3
在C ++中,何时应在虚拟方法声明中使用final?
我知道该final关键字用于防止虚拟方法被派生类覆盖。但是,当我真的应该在方法中使用关键字时,找不到任何有用的示例。更甚者,使用虚拟方法感觉像是一种难闻的气味,因为它不允许程序员将来扩展类。finalvirtualfinal 我的问题是下一个: 当我真的应该final在virtual方法声明中使用时,是否有任何有用的情况?
11 c++  final 



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.