-
924 votesanswersviews
未定义的行为和序列点
什么是“序列点”? 未定义的行为和序列点之间的关系是什么? 我经常使用像_284620这样有趣而复杂的表达方式来让自己感觉更好 . 我为什么要停止使用它们? 如果您已阅读此内容,请务必访问后续问题Undefined behavior and sequence points reloaded . (注意:这是Stack Overflow的C FAQ的一个条目 . 如果你想批评提供这种形式的常见问题解... -
1268 votesanswersviews
什么是未定义的引用/未解析的外部符号错误,如何解决?
什么是未定义的引用/未解析的外部符号错误?什么是常见原因以及如何修复/预防它们? 随意编辑/添加自己的 . -
1524 votesanswersviews
什么是智能指针,什么时候应该使用?
什么是智能指针,什么时候应该使用? -
2146 votesanswersviews
什么时候应该使用static_cast,dynamic_cast,const_cast和reinterpret_cast?
有什么用途: static_cast dynamic_cast const_cast reinterpret_cast C风格演员 (type)value 函数式转换 type(value) 如何确定在哪些特定情况下使用哪个? -
882 votesanswersviews
C 17有哪些新功能?
C 17现在功能齐全,因此不太可能经历大的变化 . 为C 17提出了数百项提案 . 在C 17中将哪些功能添加到C中? 当使用支持“C 1z”的C编译器时,当编译器更新到C 17时,哪些功能可用? -
362 votesanswersviews
如何从函数中返回一个对象,考虑C 11 rvalues并移动语义?
我正在尝试理解rvalue引用并移动C 11的语义 . 这些示例之间有什么区别,哪些不会执行矢量复制? 第一个例子 std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&r... -
1909 votesanswersviews
什么是三法则?
复制对象意味着什么? 什么是复制构造函数和复制赋值运算符? 我什么时候需要自己申报? 如何防止复制对象? -
810 votesanswersviews
C中的POD类型是什么?
我曾几次遇到这个术语POD型 . 这是什么意思? -
1268 votesanswersviews
什么是未定义的引用/未解析的外部符号错误,如何解决?
什么是未定义的引用/未解析的外部符号错误?什么是常见原因以及如何修复/预防它们? 随意编辑/添加自己的 . -
1466 votesanswersviews
为什么模板只能在头文件中实现?
引自The C++ standard library: a tutorial and handbook: 目前使用模板的唯一可移植方法是使用内联函数在头文件中实现它们 . 为什么是这样? (澄清:头文件不是唯一的便携式解决方案 . 但它们是最方便的便携式解决方案 . ) -
165 votesanswersviews
为什么'this'是指针而不是引用?
我正在阅读这个问题的答案C++ pros and cons并在阅读评论时遇到了这个疑问 . 程序员经常发现令人困惑的是“this”是指针而不是引用 . 另一个混乱是为什么“你好”不是类型std :: string但是求值为char const *(指针)(在数组到指针转换之后) - Johannes Schaub - litb '00去年12月22日1:56那只能说明它不使用与其他(稍后)... -
510 votesanswersviews
为什么循环条件中的iostream :: eof被认为是错误的?
我刚刚在this回答中发现一条评论说在循环条件下使用 iostream::eof 是"almost certainly wrong" . 我通常使用类似 while(cin>>n) 的东西 - 我猜这是隐式检查EOF,为什么使用 iostream::eof 错误地检查eof? 它与在C中使用 scanf("...",...)!=EOF 有什么不同... -
1269 votesanswersviews
什么是未定义的引用/未解析的外部符号错误,如何解决?
什么是未定义的引用/未解析的外部符号错误?什么是常见原因以及如何修复/预防它们? 随意编辑/添加自己的 . -
82 votesanswersviews
重新加载未定义的行为和序列点
将此主题视为以下主题的续篇: 上一期安装未定义的行为和序列点 让我们重新审视这个有趣而复杂的表达(斜体短语取自上述主题* smile *): i += ++i; 我们说这会调用undefined-behavior . 我认为,当这样说时,我们隐含地假设 i 的类型是内置类型之一 . 如果 i 的类型是用户定义的类型怎么办?比如它的类型是 Index ,这篇文章稍后会定义(见下文) . 它还会... -
1470 votesanswersviews
为什么模板只能在头文件中实现?
引自The C++ standard library: a tutorial and handbook: 目前使用模板的唯一可移植方法是使用内联函数在头文件中实现它们 . 为什么是这样? (澄清:头文件不是唯一的便携式解决方案 . 但它们是最方便的便携式解决方案 . ) -
952 votesanswersviews
我必须在何处以及为何要使用“模板”和“typename”关键字?
在模板中,我在哪里以及为什么必须在依赖名称上放置 typename 和 template ?究竟什么是依赖名称?我有以下代码: template <typename T, typename Tail> // Tail will be a UnionNode too. struct UnionNode : public Tail { // ... template<... -
952 votesanswersviews
我必须在何处以及为何要使用“模板”和“typename”关键字?
在模板中,我在哪里以及为什么必须在依赖名称上放置 typename 和 template ?究竟什么是依赖名称?我有以下代码: template <typename T, typename Tail> // Tail will be a UnionNode too. struct UnionNode : public Tail { // ... template<... -
952 votesanswersviews
我必须在何处以及为何要使用“模板”和“typename”关键字?
在模板中,我必须在哪里以及为什么要在依赖名称上放置 typename 和 template ?究竟什么是依赖名称?我有以下代码: template <typename T, typename Tail> // Tail will be a UnionNode too. struct UnionNode : public Tail { // ... template<... -
280 votesanswersviews
构造函数中这个奇怪的冒号成员(“:”)语法是什么?
最近我见过如下例子: #include <iostream> class Foo { public: int bar; Foo(int num): bar(num) {}; }; int main(void) { std::cout << Foo(42).bar << std::endl; return 0; } 这奇怪的 : bar(nu... -
388 votesanswersviews
“STL”和“C标准库”之间有什么区别?
有人提请我注意,我声称STL术语被用来引用整个C标准库,而不是从SGI STL中获取的部分 . (...)它指的是“STL”,尽管很少有人仍然使用STL(在SGI设计) . C标准库的部分内容基于STL的部分内容,许多人(包括几位作者和臭名昭着的错误cplusplus.com)仍然将这些部分称为“STL” . 但是,这是不准确的;事实上,C标准从未提及“STL”,两者之间存在内容差异 . (... -
1272 votesanswersviews
什么是未定义的引用/未解析的外部符号错误,我该如何解决?
什么是未定义的参考/未解决的外部符号错误?什么是常见原因以及如何修复/预防它们? 随意编辑/添加您自己的 . -
228 votesanswersviews
我何时使用点,箭头或双冒号来引用C中某个类的成员?
从其他C派生语言(如Java或C#)到C,最初非常令人困惑的是C有三种方式来引用类的成员: a::b , a.b 和 a->b . 我什么时候使用这些运营商中的哪一个? (注意:这是Stack Overflow的C FAQ的一个条目 . 如果你想批评在这个表单中提供常见问题解答的想法,那么发布所有这些的meta上的帖子就是这样做的地方 . 这个问题在C聊天室中受到监控,其中FAQ的想法首先... -
348 votesanswersviews
编译/链接过程如何工作?
编译和链接过程如何工作? (注意:这是Stack Overflow的C FAQ的一个条目 . 如果你想批评在这个表单中提供常见问题解答的想法,那么发布所有这些的meta上的帖子就是这样做的地方 . 这个问题在C聊天室中受到监控,其中FAQ的想法首先出现在那里,所以你的答案很可能被那些提出这个想法的人阅读 . ) -
59 votesanswersviews
C中的对象破坏
究竟是什么物体在C中被摧毁,这意味着什么?我是否必须手动销毁它们,因为没有垃圾收集器?例外是如何发挥作用的? (注意:这是Stack Overflow的C FAQ的一个条目 . 如果你想批评在这个表单中提供常见问题解答的想法,那么发布所有这些的meta上的帖子就是这样做的地方 . 这个问题在C聊天室中受到监控,其中FAQ的想法首先出现在那里,所以你的答案很可能被那些提出这个想法的人阅读 . ) -
456 votesanswersviews
迭代器失效规则
C容器的迭代器失效规则是什么? 优选地以摘要列表格式 . (注意:这是Stack Overflow的C FAQ的一个条目 . 如果你想批评在这个表单中提供常见问题解答的想法,那么发布所有这些的meta上的帖子就是这样做的地方 . 这个问题在C聊天室中受到监控,其中FAQ的想法首先出现在那里,所以你的答案很可能被那些提出这个想法的人阅读 . ) -
18 votesanswersviews
对静态成员进行未定义的引用意味着什么?
我刚刚写了一个包含一些静态数据成员的类,但现在我收到有关“未定义引用”的错误 . 为什么这不起作用?我究竟做错了什么? (注意:这是Stack Overflow的C FAQ的一个条目 . 如果你想批评在这个表单中提供常见问题解答的想法,那么发布所有这些的meta上的帖子就是这样做的地方 . 这个问题在C聊天室中受到监控,其中FAQ的想法首先出现在那里,所以你的答案很可能被那些提出这个想法的人阅读 ... -
64 votesanswersviews
为什么要替换默认的new和delete运算符?
Why should would one replace the default operator new and delete with a custom new and delete operators? 这是在非常有启发性的C FAQ中继续Overloading new and delete:Operator overloading. 本FAQ的后续条目是:How should I writ... -
2147 votesanswersviews
什么时候应该使用static_cast,dynamic_cast,const_cast和reinterpret_cast?
有什么用途: static_cast dynamic_cast const_cast reinterpret_cast C风格演员 (type)value 函数式转换 type(value) 如何决定在哪些特定情况下使用哪个? -
218 votesanswersviews
什么是“这个的右值参考”?
在clang的C++11 status page中遇到了一个名为"rvalue reference for *this"的提案 . 我已经阅读了很多关于rvalue引用并理解它们的内容,但我认为我不知道这一点 . 我也无法使用这些条款在网上找到太多资源 . 页面上的提案文件有一个链接:N2439(将移动语义扩展到* this),但我也没有从中获得太多的例子 . 这个功能是什么?... -
1168 votesanswersviews
什么是右值,左值,x值,glvalues和prvalues?
在C 03中,表达式是 rvalue 或 lvalue . 在C 11中,表达式可以是: rvalue lvalue xvalue glvalue prvalue 两类已成为五大类 . 这些新的表达类别是什么? 这些新类别如何与现有的右值和左值类别相关联? C 0x中的右值和左值类别是否与它们在C 03中的相同? 为什么需要这些新类别? WG21众神只是试...