草庐IT

static-members

全部标签

C++ 使用 "this"对象的 static_cast 和 const_cast 添加 const-ness 之间的区别?

按照ScottMeyers的说法,为防止在getter的const版本和getter的非常量版本中重复代码,请从非常量版本调用方法的const版本:static_cast(*this).Methodology();然而,由于过度使用VisualAssistXIntellisense导致意外使用,我输入了:const_cast(*this).Methodology();而且效果很好。在这种情况下,使用特定类型转换有什么不同?使用的IDE:VisualStudio2010。 最佳答案 假设this的类型是A*,没有区别。通常const_

c++ - 如何在头文件中定义 const static std::string?

我有一个类,我想存储一个静态std::string,它要么是真正的const,要么是通过getter有效的const。我尝试了几种直接的方法1.conststaticstd::stringfoo="bar";2.constexternstd::stringfoo;//definedatthebottomoftheheaderlikeso...//remainingcodeinheader};//closeheaderclassdeclarationstd::stringMyClass::foo="bar"/#endif//MYCLASS_H我也试过了3.protected:static

c++ - 如何在头文件中定义 const static std::string?

我有一个类,我想存储一个静态std::string,它要么是真正的const,要么是通过getter有效的const。我尝试了几种直接的方法1.conststaticstd::stringfoo="bar";2.constexternstd::stringfoo;//definedatthebottomoftheheaderlikeso...//remainingcodeinheader};//closeheaderclassdeclarationstd::stringMyClass::foo="bar"/#endif//MYCLASS_H我也试过了3.protected:static

c++ - 试图理解 "pointer to member"

我试图了解“指向成员的指针”是如何工作的,但对我来说并非一切都清楚。这是一个示例类:classT{public:inta;intb[10];voidfun(){}};以下代码说明问题并包含问题:voidfun(){};voidmain(){Tobj;intlocal;intarr[10];intarrArr[10][10];int*p=&local;//"standard"pointerintT::*p=&T::a;//"pointertomember"+"T::",thatisclearvoid(*pF)()=fun;//herealsoeverythingisclearvoid(T

c++ - 试图理解 "pointer to member"

我试图了解“指向成员的指针”是如何工作的,但对我来说并非一切都清楚。这是一个示例类:classT{public:inta;intb[10];voidfun(){}};以下代码说明问题并包含问题:voidfun(){};voidmain(){Tobj;intlocal;intarr[10];intarrArr[10][10];int*p=&local;//"standard"pointerintT::*p=&T::a;//"pointertomember"+"T::",thatisclearvoid(*pF)()=fun;//herealsoeverythingisclearvoid(T

c++ - 为什么静态成员变量不能很好地与三元运算符一起使用?

这是交易。我有一个静态类,其中包含几个用于获取输入的静态函数。该类包含一个私有(private)静态成员变量,用于指示用户是否输入了任何信息。每种输入法都会检查用户是否输入了任何信息,并相应地设置状态变量。我认为这将是使用三元运算符的好时机。不幸的是,我不能,因为编译器不喜欢那样。我复制了这个问题,然后尽可能地简化了我的代码以使其易于理解。这不是我的原始代码。这是我的头文件:#includeusingnamespacestd;classTest{public:voidgo();private:staticconstintGOOD=0;staticconstintBAD=1;};这是我使

c++ - 为什么静态成员变量不能很好地与三元运算符一起使用?

这是交易。我有一个静态类,其中包含几个用于获取输入的静态函数。该类包含一个私有(private)静态成员变量,用于指示用户是否输入了任何信息。每种输入法都会检查用户是否输入了任何信息,并相应地设置状态变量。我认为这将是使用三元运算符的好时机。不幸的是,我不能,因为编译器不喜欢那样。我复制了这个问题,然后尽可能地简化了我的代码以使其易于理解。这不是我的原始代码。这是我的头文件:#includeusingnamespacestd;classTest{public:voidgo();private:staticconstintGOOD=0;staticconstintBAD=1;};这是我使

c++ - 为什么要在 C++ 中初始化静态类变量?

在C和C++中,所有静态变量默认初始化为零。这不是静态类数据成员的情况。这是为什么呢?#includeusingnamespacestd;intvar;classMyClass{public:staticintclassVar;};intMyClass::classVar=0;//WhyIhavetoinitithere?intmain(void){cout 最佳答案 在类范围内,intMyClass::classVar=0;//WhyIhavetoinitithere?是一个定义和staticintclassVar;是一个声明,即

c++ - 为什么要在 C++ 中初始化静态类变量?

在C和C++中,所有静态变量默认初始化为零。这不是静态类数据成员的情况。这是为什么呢?#includeusingnamespacestd;intvar;classMyClass{public:staticintclassVar;};intMyClass::classVar=0;//WhyIhavetoinitithere?intmain(void){cout 最佳答案 在类范围内,intMyClass::classVar=0;//WhyIhavetoinitithere?是一个定义和staticintclassVar;是一个声明,即

c++ - Visual Studio 2015 “non-standard syntax; use ' &' to create a pointer to member”

我正在学习C++并尝试制作一个小游戏井字游戏。但我不断得到C3867,非标准语法;使用'&'创建一个要记住的指针。这是我的井字游戏.h:#pragmaonce#includeusingnamespacestd;classTicTacToe{public:TicTacToe();stringgetName1();stringgetName2();voidprintBoard();voidclearBoard();voidsetName1(stringplayer1Name);voidsetName2(stringplayer2Name);voidsetSign1(stringplayer