草庐IT

this_record

全部标签

c++ - 错误 : ‘Class’ was not declared in this scope

请问,如何在另一个类中定义类。在下面的代码中。我尝试以#define"CCompField.h"的方式定义它,但它不起作用。:(。我认为这是非常常见的编程问题,可能在互联网上已经解决了100000次,但我不知道如何找到它。感谢您的帮助。#ifndefCNEWGAME_H#defineCNEWGAME_HclassCNewGame{public:CNewGame();~CNewGame();voidBeginnerGame();voidIntermediateGame();voidAdviceGame();voidHowToPlay();voidNetGame(intmode);intM

c++ - 浮点相等测试和超精度 : can this code fail?

讨论开始于myanswertoanotherquestion.以下代码确定machineepsilon:floatcompute_eps(){floateps=1.0f;while(1.0f+eps!=1.0f)eps/=2.0f;returneps;}在评论中建议1.0f+eps!=1.0f测试可能会失败,因为C++标准允许使用额外的精度。尽管我知道浮点运算实际上以更高的精度执行(比实际使用的类型指定的精度更高),但我碰巧不同意这个提议。我怀疑在比较操作期间,例如==或!=,操作数没有被截断到它们类型的精度。换句话说,1.0f+eps当然可以比float(例如,longdouble)

C++ : friends of class and "this" pointer

我有一个小问题要问你:),我知道每个方法都“secret地”获取它们所在的某个类的“this”指针,但为什么“友元”函数不会发生这种情况?是因为它们不是类的方法吗?谁能解释一下整个机器,我对“这个”到底是如何工作的很感兴趣!提前致谢!:) 最佳答案 friend函数和类仅用于编译器检查的访问控制。friend函数只是标准函数,因此调用约定不会有任何差异。friend函数不是任何类的成员,因此没有传递this指针(与static成员函数一样)类的非static成员函数将得到一个隐藏this指针(根据ABI这通常是第一个参数),stat

c++ - 谷歌测试 Gtest.cc :812: error: 'gettimeofday' was not declared in this scope

我正在尝试通过命令行通过MinGW编译Google测试,但是当我尝试使用命令进行编译时gcc-ID:\gtest-ID:\gtest\include-ID:\gtest\include\gtestsrc\gtest_main.ccsrc\gtest-all.cc它抛出错误Gtest.cc:812:错误:'gettimeofday'未在此范围内声明我通过VisualStudio成功编译,所以我猜这不是代码的错误。还有其他人遇到过这个问题并且知道解决方案吗? 最佳答案 and是两个不同的包含

c++ - 在构造函数的初始化列表中使用 "this"对 Qt 特别危险吗?

我需要关于“这个”主题的可靠信息:classMyClass,publicQWidget{public:MyClass(QWidget*parent=NULL):QWidget(parent),mpAnotherWidget(newQWidget(this)){};private:QWidget*mpAnotherWidget;};当然,在构造器或初始化列表中调用虚函数不是一个好主意。问题是:这段代码可以吗mpAnotherWidget(newQWidget(this))导致未定义的行为?!如果是这样:为什么?如果可以,请引用您的消息来源!谢谢! 最佳答案

c++ - 错误 : 'object' was not declared in this scope

我是C++的新手,正在尝试制作大富翁游戏。不幸的是,它仍然显示两个类之间的声明错误。我已经尝试了所有方法,但真的不知道问题出在哪里。错误:“玩家”未在此范围内声明。引擎.h#ifndefENGINE_H#defineENGINE_H#include"Player.h"#includeusingnamespacestd;classEngine{public:Engine();//methodthatstartswithgame,takerandomnumberforgettingnumberofplayers,setplayerstovectorvoidplay();//methodwh

c++ - 为什么 "this"指针用于调用派生成员函数?

在this上阅读关于虚函数的教程(与本例无关)链接,我找到了这段代码。classWeapon{public:voidfeatures(){coutWeapon::features();cout类Weapon派生自类Bomb,其中调用了Weapon的成员函数。为什么使用“this”指针调用函数Weapon::features()?这不是已经隐式给出了吗? 最佳答案 this是隐式给出的,是否显式编写通常是风格问题。在您的情况下,我会说它不会提高可读性。然而,在其他情况下,显式写入this是有意义的,甚至是必要的为了避免局部变量和数据成

c++ - BOOST_FOREACH : What is the error on using this of a STL container?

有谁知道为什么以下会在VC9上产生错误?classElem;classElemVec:publicvector{public:voidfoo();};voidElemVec::foo(){BOOST_FOREACH(Elem&elem,*this){//Dosomethingwithelem}return;}我得到的错误是:errorC2355:'this':canonlybereferencedinsidenon-staticmemberfunctions我现在拥有的唯一(hack)解决方案是:voidElemVec::foo(){ElemVec*This=this;BOOST_FO

c++ - 模板 :Name resolution:Point of instantiation: -->can any one tell some more examples for this statement?

这是来自ISOC++标准14.6.4.1实例化点的声明Forafunctiontemplatespecialization,amemberfunctiontemplatespecialization,oraspecializationforamemberfunctionorstaticdatamemberofaclasstemplate,ifthespecializationisimplicitlyinstantiatedbecauseitisreferencedfromwithinanothertemplatespecializationandthecontextfromwhichi

c++ - 具有固定实现的虚函数不使用 (*this) 的大多数派生类

假设我有以下代码:structZ;structA{virtualvoidDo(Z&z)const;};structB:publicA{};structZ{voiduse(Aconst&a){}voiduse(Bconst&b){}};voidA::Do(Z&z)const{z.use(*this);}现在,当我调用B.do,this的类型是A,这是有道理的,因为do的实现在A中定义.有什么方法可以调用B.do使用use(Bconst&)无需为do复制粘贴相同的代码来自A进入B?在我的实际代码中,我有大约15个(并且还在不断增加)派生自某个基类的类,必须为do复制粘贴相同的代码似乎很浪费