草庐IT

this_project

全部标签

c++ - 从派生类调用时推断 'this' 指针类型?

我在基类中有一个方法需要传递给它的类型以进行一些与类型相关的操作(查找、大小和一些方法调用)。目前它看起来像这样:classbase{templatevoidBindType(T*t);//dosomethingwiththetype};classderived:publicbase{voidfoo(){do_some_workBindType(this);}};classderivedOther:publicbase{voidbar(){do_different_work...BindType(this);}};但是,我想知道是否有一种方法可以获取调用者的类型而不必传递它,以便我的调

c++ - VS2008 win32 project defaults - 移除默认的预编译头文件

我已经尝试过每一个选项,试图找到一种方法让IDE让我创建一个没有预编译头文件的新win32pject。我已经阅读了这个论坛上的每个线程,其中包含“precpmpiledheaders”字样,我得到的最接近的是:PrecompiledHeaders使用2008pro(不明确,虽然行为似乎相似)我去:文件->新建->项目这将打开“新建项目”对话框,我在其中选择“VisualC++Win32项目”,输入名称并单击“确定”。然后我得到“Win32应用程序向导”。将应用程序类型设置为“Windows应用程序”后,应用程序设置Pane将不允许我取消选中预编译的header。复选框变灰。如果我选择“

C++ 如何将 'this' 传递给指针引用

我有一个主类,我想将它的指针引用传递给我创建的一个对象,但它给我错误:Error1errorC2664:'GameController::GameController(GameLayer*&)':cannotconvertparameter1from'GameLayer*const'to'GameLayer*&'我在GameLayer(主要对象)中有什么m_pGameController=newGameController(this);在GameController中我有这个构造函数GameController(GameLayer*&GameLayer){setGameLayer(ga

c++ - 尝试理解 std::enable_shared_from_this<T> 但使用它会导致 bad_weak_ptr

我试图理解std::enable_shared_from_this类的行为,但我无法理解。所以我写了一个简单的程序来测试不同的情况。问题谁能解释一下下面代码的行为,因为我无法解释观察到的结果。谢谢你的帮助。代码#include#includestructC:std::enable_shared_from_this{};intmain(){{//test1std::shared_ptrfoo,bar;foo=std::make_shared();bar=foo->shared_from_this();//okstd::coutfoo=std::shared_ptr(newC);std::

java - 正确使用this->

类的this自引用的正确用法是什么?我有时在一个方法中使用它来清除所使用的变量是一个成员变量而不是在方法中声明的变量,但另一方面我想知道这是否是一个很好的理由,正如我认为的那样你应该总是以一种不言自明的方式编码(和评论),因此不必要地使用this是不必要的,另一个反对它的原因是你实际上产生了比需要更多的代码.voidfunction(){while(i!=this->length)//lengthismembervar/*dosomething*/}我经常遇到的另一种使用它的方法是在构造函数内部(主要是在Java中),因为参数确实与必须初始化的成员变量同名。作为Primer声明这是错误

c++ - 错误 : request for member '..' in 'this' , 是非类类型 '--* const'

这是我的第一个问题。请原谅,我刚刚进入C++并开始使用DS。堆叠!!!我的代码:我认为usingnamespacestd;typedefcharstackElement;classStack{public:stackElement*contents;//dynamicallyallocated:aswedonotknowwhatwouldbethesizeofourarray.inttop,maxSize;//currentTopindexinthearray//maxsizeofthearray;weneedittoknowifthearrayisfullStack(intmaxSi

c++ - 为什么是 std::this_thread 命名空间?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。std::this_thread命名空间是否有技术原因?为什么这个命名空间的成员不能作为std::thread类的静态成员实现?

c++ - "this"不能作为函数使用

在C++中,我试图模拟Java如何处理对其构造函数的调用。在我的Java代码中,如果我有2个不同的构造函数并且想要一个调用另一个,我只需使用this关键字。示例:publicConstructor1(Strings1,Strings2){//funstuffhere}publicConstructor2(Strings1){this("Testing",s1);}使用此代码,通过使用Constructor2(传入单个字符串)实例化一个对象,它随后将只调用Constructor1。这在Java中非常有效,但我如何在C++中获得类似的功能?当我使用this关键字时,它会提示并告诉我'thi

c++ - 混淆涉及 *this 的 C++ 代码?

有人可以解释这段代码吗?我不明白第3行:MyStringMyString::operator+(constMyString&str){MyStringss(*this);//---->explainthispartss+=str;returnss;}谢谢! 最佳答案 这段代码:MyStringss(*this);表示“声明一个名为ss的MyString类型的新变量,并将其初始化为*this的拷贝。”在成员函数内部,this是指向接收者对象(成员函数作用的对象)的指针,所以*this是对接收者对象的引用.因此,您可以将其理解为“创建一

c++ - 在成员函数中测试 this 指针是否合法 C++?

我有一个涉及不同类类型对象的应用程序。对象由指针引用。空指针表示关联的对象不存在。目前的调用代码很麻烦,因为每次它使用一个指向对象的指针时,它都会测试指针值是否为空,并采取一些适当的措施它是空的。因为在不存在的情况下要采取的默认操作取决于对象的类型,所以我更愿意在对象本身的类中而不是在调用程序中对其进行编码。这导致如下结构:classC{...voidmember_func()//non-virtual!{if(this){dosomethingwiththeobject...}else{takesomedefaultaction}}...};显然成员函数不能是虚的,因为当对象不存在时