Questions tagged «c++03»


6
虚函数可以具有默认参数吗?
如果我声明一个基类(或接口类)并为其一个或多个参数指定默认值,那么派生类是否必须指定相同的默认值;如果没有,那么默认值将出现在派生类中吗? 附录:我也对在不同的编译器中如何处理此问题以及在这种情况下对“推荐”实践的任何投入感兴趣。
164 c++  c++11  c++03 

9
Trigraph序列在C ++中的用途?
根据C ++'03 Standard 2.3 / 1: 在进行任何其他处理之前,以下三个字符序列之一(“字母序列”)的每次出现都被表1中指示的单个字符代替。 ---------------------------------------------------------------------------- | trigraph | replacement | trigraph | replacement | trigraph | replacement | ---------------------------------------------------------------------------- | ??= | # | ??( | [ | ??< | { | | ??/ | \ | ??) | ] | ??> | } | | ??’ …
127 c++  c++03  trigraphs 

8
在运行时可以检测到C ++ 03和C ++ 11之间有什么区别(如果有)?
可以编写一个函数,当使用C编译器进行编译时,该函数将返回0,而使用C ++编译器进行编译时,该函数将返回1(用琐碎的处理 #ifdef __cplusplus是没有意义的)。 例如: int isCPP() { return sizeof(char) == sizeof 'c'; } 当然,以上内容仅sizeof (char)在与sizeof (int) 另一个更便携的解决方案是这样的: int isCPP() { typedef int T; { struct T { int a[2]; }; return sizeof(T) == sizeof(struct T); } } 我不确定这些示例是否100%正确,但是您可以理解。我相信还有其他方法可以编写相同的函数。 在运行时可以检测到C ++ 03和C ++ 11之间有什么区别(如果有)?换句话说,是否可以编写类似的函数来返回一个布尔值,该值指示该布尔值是由合格的C ++ 03编译器还是C ++ 11编译器编译的? bool isCpp11() …

3
默认值和零初始化混乱
我对value-&default-&zero-initialization感到非常困惑。特别是当他们采用不同的标准C ++ 03和C ++ 11(和C ++ 14)时。 我在这里引用并尝试扩展一个很好的答案Value- / Default- / Zero-Init C ++ 98和C ++ 03,使其更通用,因为如果有人可以帮助填写,它将对很多用户有所帮助需要差距才能很好地了解何时会发生什么? 简而言之,通过示例全面了解: 有时由new运算符返回的内存将被初始化,有时并不取决于您要更新的类型是POD(普通旧数据),还是它是包含POD成员并且正在使用a的类。编译器生成的默认构造函数。 在C ++ 1998中,有两种初始化类型:零初始化和默认初始化 在C ++ 2003中,第三种初始化类型是值初始化。 在C ++ 2011 / C ++ 2014中,仅添加了列表初始化,并且value- / default- / zero-initialization的规则有所更改。 承担: struct A { int m; }; struct B { ~B(); int m; }; …
88 c++  c++11  c++14  c++03  c++98 

10
有什么理由在C ++ 03中使用'auto'关键字吗?
请注意,此问题最初于2009年发布,在批准C ++ 11之前和在auto彻底改变关键字的含义之前。提供的答案仅与C ++ 03的含义(auto即指定的存储类)有关,而不与C ++ 11的含义(auto即自动类型推断)有关。如果您正在寻找有关何时使用C ++ 11的建议auto,则该问题与该问题无关。 在最长的时间内,我认为没有理由static在C中使用该关键字,因为在块范围之外声明的变量是隐式全局的。然后,我发现将变量声明为static块作用域内将赋予它永久的持续时间,而在块作用域之外(在程序作用域内)声明该变量将为其赋予文件作用域(只能在该编译单元中访问)。 因此,这仅给我留下了一个我可能尚未完全理解的auto关键字:关键字。除了“局部变量”之外,它还有其他含义吗?不管您想在任何地方使用它,对您而言,隐式所做的任何事情吗?auto变量在程序范围内如何表现?static auto文件范围中的变量是什么?除了完整性之外,此关键字还有其他用途吗?
85 c++  keyword  c++03 

12
如何传递类成员函数作为回调?
我使用的API要求我将函数指针作为回调传递。我正在尝试从我的课程中使用此API,但遇到编译错误。 这是我从构造函数执行的操作: m_cRedundencyManager->Init(this->RedundencyManagerCallBack); 无法编译-我收到以下错误: 错误8错误C3867:'CLoggersInfra :: RedundencyManagerCallBack':函数调用缺少参数列表;使用'&CLoggersInfra :: RedundencyManagerCallBack'创建指向成员的指针 我尝试过使用建议&CLoggersInfra::RedundencyManagerCallBack-对我不起作用。 任何建议/解释吗? 我正在使用VS2008。 谢谢!!

10
在C ++中的类初始化程序中初始化const数组
我在C ++中有以下课程: class a { const int b[2]; // other stuff follows // and here's the constructor a(void); } 问题是,鉴于b不能在构造函数的函数体内进行初始化,我如何在初始化列表中初始化b const? 这不起作用: a::a(void) : b([2,3]) { // other initialization stuff } 编辑:恰当的例子是当我可以b为不同的实例使用不同的值时,但已知这些值在实例的生存期内是恒定的。
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.