草庐IT

THIS_MODULE

全部标签

c++ - 将 "this"称为 shared_ptr?

这个问题在这里已经有了答案:std::shared_ptrofthis(2个答案)关闭8年前。我正在学习C++11特性,特别是shared_ptr,我在引用this并将其用作其他类的引用时遇到问题.这样做的原因是我有一个Simulation实例,该实例被传递给模拟中的其他实例(例如Apple),因此它们可以自己修改模拟,甚至将自己从模拟中移除。在我更复杂的代码中,我得到了一个doublefree错误(当程序存在时),据我所知fromhere我不应该在同一个原始对象上创建两次shared_ptr。当模拟类不知道this时,如何将this作为shared_ptr传递给Apple对象已经是s

C++ this 和常量对象

你能告诉我为什么这段代码有效吗?replace_if算法使用了重载的operator()。在main函数中,我创建了IsEqual类的常量对象,因此只应使用常量函数成员。不知何故,恒定性不起作用,该运算符被调用。#include#include#includeclassIsEqual{intvalue;public:IsEqual(intv):value(v){}booloperator()(constint&elem){this->value=6;returnelem==value;}};intmain(){constIsEqualtst(2);std::vectorvec={3,2

python3遇到Can‘t connect to HTTPS URL because the SSL module is not available.

远程服务器centos7系统上有minicoda3,觉得太占空间,就把整个文件夹删了,原先的Python3也没了,都要重装。我自己的步骤:进入管理员模式1.下载Python3的源码:wgethttps://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz2.解压tarzxfPython-3.10.5.tgz3.进入文件夹cdPython-3.10.114.检查平台属性./configure5.编译和安装make&&makeinstall6.建立软链接可以先看下Python的安装位置whereispythonln-sf/usr/python

C++ 使用 'this' 作为参数

我有一个大致像这样的类:classMeshClass{public:AnchorgetAnchorPoint(x,y){returnAnchor(this,x,y);}private:points[x*y];}我想制作另一个代表“anchor”的类,它可以访问网格并修改该点,如下所示:classAnchor{public:Anchor(&MeshClass,x,y)moveAnchor(x,y);}问题是当我尝试在MeshClass::getAnchorPoint方法中创建Anchor时,类似于returnAnchor(this,x,y)但是因为this是const我不能。作为一种解决

c++ - 是否编译了带有 if(this==NULL) 测试的类函数?

我在我们的实验中看到了这段代码片段,它实际上是在MSVC2008和G++中编译的。voidLinkList::Insert(Tn){if(this==NULL)//somecodehere}据我所知,this不能为null,因为如果未实例化,则不能在C++中调用类函数。这是一个有效的代码吗?如果是这样,背后的原因是什么?它可以用在什么地方? 最佳答案 sinceyoucannotcallaclassfunctionsinc++ifitwasn'tinstantiated问题是,你可以,但它leadstoundefinedbehavi

c++ - 'giving out' 是构造函数中对 'this' 的引用吗?

我的代码:Scene::Scene(conststd::string&scene_file):ambient_light(0,0,0),background(0,0,0){scene_parserparser(*this);parser.parse(scene_file);}scene_parser是Scene的friend,在parse方法中它访问(r/w)Scene的成员。这会导致任何问题吗? 最佳答案 是的,给出对this的引用是可以的。但是,您通常希望在其他对象稍后使用该指针时执行此操作。您的用例看起来会在构造函数完成之前立

c++ - 这个私有(private)变量 "not declared in this scope"怎么样?

我目前正在尝试学习更多有关C++面向对象设计的知识(熟悉Java),但遇到了一些困难。我试图将这个项目放在一起,以在使用SFML构建图形和音频的游戏中学习这些原则。我有以下两个文件。WorldObject.h#ifndefWORLDOBJECT_H#defineWORLDOBJECT_H#include#include#include"ImageManager.h"classWorldObject{private:sf::Sprite_sprite;voidSetImagePath(std::stringpath);sf::SpriteGetGraphic();};#endif世界对象

c++ - 带有 "Do not show this again"复选框的 QMessageBox

如何在下方显示带有“不再显示”复选框的消息框?我想象的东西看起来像这样: 最佳答案 Qt5.2添加了将QCheckBox添加到QMessageBox的可能性。看看QMessageBox::setCheckbox这是一些演示代码if(this->showMsgBox){QCheckBox*cb=newQCheckBox("OkayIunderstand");QMessageBoxmsgbox;msgbox.setText("AmInerve-wrecking?");msgbox.setIcon(QMessageBox::Icon::Q

c++ - 构造函数内部 "this"的 dynamic_cast

这个问题与这个问题非常相似Whycan'tIdynamic_cast"sideways"duringmultipleinheritence?,除了强制转换确实有效-只是不在构造函数中。标题:classA{public:virtual~A(){}voidprintA();};classB{public:B();virtual~B(){}voidprintB();private:std::stringmessage_;};classC:publicA,publicB{public:C(){}virtual~C(){}};来源:voidA::printA(){cout(this);if(a)

c++ - 在成员函数尾随返回类型中使用 this 和属性?

在此answer我给出了,在尾随返回类型中使用this和类_arg的属性作为decltype表达式的一部分是有意义的。可以不用,但不方便。既不是clang3.0(见下文)也不是gcc4.5.2不过还是接受了。#includeclassMyClass{public:MyClass(inti):_arg(i){}templateautoapply(F&f)->decltype(f(_arg)){returnf(_arg);}templateautoapply(F&f)->decltype(f(*this,_arg)){returnf(*this,_arg);}private:int_arg