Questions tagged «c++»

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


13
将const std :: string&作为参数传递的日子已经过去了吗?
我听取了香草萨特最近的谈话谁建议的理由来传递std::vector和std::string利用const &在很大程度上消失了。他建议现在编写诸如以下的函数是可取的: std::string do_something ( std::string inval ) { std::string return_val; // ... do stuff ... return return_val; } 我知道return_val在函数返回时,它将是一个右值,因此可以使用移动语义来返回,这非常便宜。但是,inval它仍然比引用(通常实现为指针)的大小大得多。这是因为a std::string具有各种组件,包括指向堆的指针和char[]用于短字符串优化的成员。因此在我看来,通过引用传递仍然是一个好主意。 谁能解释为什么Herb可能会这么说?
604 c++  c++11 


7
如何从派生类函数调用父类函数?
如何使用C ++从派生类调用父函数?例如,我有一个名为的类parent,一个名为的类child是从父类派生的。每个类中都有一个print函数。在定义孩子的打印功能时,我想调用父母的打印功能。我将如何去做呢?
602 c++  oop  inheritance 

17
C ++代码文件扩展名?.cc和.cpp [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 上个月关闭。 我已经看到C ++代码另存为.cc和.cpp文件。两者之间有区别吗? 在谷歌的风格指南似乎在暗示.cc,但没有提供任何解释。 我主要关注Linux系统上的程序。
599 c++  filenames 



9
如何从进程内部确定CPU和内存消耗?
我曾经负责从运行的应用程序内部确定以下性能参数的任务: 可用虚拟内存总量 当前使用的虚拟内存 我的进程当前使用的虚拟内存 总可用RAM 当前使用的RAM 我的进程当前使用的RAM 当前使用的CPU百分比 我的进程当前使用的CPU百分比 该代码必须在Windows和Linux上运行。即使这似乎是一项标准任务,但在手册(WIN32 API,GNU文档)以及Internet上查找必要的信息还是花了我几天的时间,因为关于该主题的信息有太多不完整/不正确/过时发现在那里。 为了使其他人免于遭受同样的麻烦,我认为最好将所有分散的信息以及我通过反复试验发现的信息收集到一个地方。
593 c++  c  memory  cpu 



28
我的程序崩溃时如何自动生成stacktrace
我正在使用GCC编译器在Linux上工作。当我的C ++程序崩溃时,我希望它自动生成一个堆栈跟踪。 我的程序由许多不同的用户运行,并且还可以在Linux,Windows和Macintosh上运行(所有版本都使用进行编译gcc)。 我希望我的程序能够在崩溃时生成堆栈跟踪,并在用户下次运行时生成一个堆栈跟踪,它将询问他们是否可以将堆栈跟踪发送给我,这样我就可以找到问题所在。我可以处理向我发送信息,但是我不知道如何生成跟踪字符串。有任何想法吗?
590 c++  gcc  crash  stack-trace  assert 

13
nullptr到底是什么?
现在,我们有了具有许多新功能的C ++ 11。新的(至少对我而言)是一个有趣而令人困惑的人nullptr。 好了,不再需要讨厌的宏NULL。 int* x = nullptr; myclass* obj = nullptr; 不过,我仍无法了解其nullptr工作原理。例如,维基百科文章说: C ++ 11通过引入一个新的关键字作为一个独特的空指针常量:nullptr 来纠正此问题。它的类型为nullptr_t,可以隐式转换,并且可以与任何指针类型或指针到成员类型进行比较。除了布尔型,它不能隐式转换或与整数类型媲美。 关键字和类型实例如何? 此外,您是否还有另一个示例(除了Wikipedia之外)nullptr优于旧的示例0?
570 c++  pointers  c++11  nullptr 

12
C ++:“ std :: endl”和“ \ n”
许多C ++书籍都包含这样的示例代码... std::cout << "Test line" << std::endl; ...所以我也总是这样做。但是,我已经从工作的开发人员那里看到了很多这样的代码: std::cout << "Test line\n"; 是否有技术上的理由要优先于另一个,还是仅仅是编码风格的问题?

15
什么时候应该为函数/方法编写关键字“ inline”?
Наэтотвопросестьответына 堆栈溢出нарусском:Когдаследуетиспользовать直列дляфункции/метода? 什么时候应该inline为C ++中的函数/方法编写关键字? 在看到一些答案之后,一些相关的问题: 何时应不写关键字“内联”在C ++函数/方法? 编译器何时不知道何时使函数/方法“内联”? 当一个应用程序为函数/方法写“内联”时,如果一个应用程序是多线程的,这有关系吗?


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.