草庐IT

self-referencing

全部标签

c++ - 在 C++ 中 self 删除一个对象

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C++:Deletethis?Object-OrientedSuicideordeletethis;我想知道下面的代码是否可以安全运行:#includeusingnamespacestd;classA{public:A(){coutdeleteMe();cout输出是:ConstructorDestructorIwasdeletedExit...程序正常退出,但这里是否存在内存访问暴力?

c++ - 区别 b/w Objective C 的 self 和 C++ 的 this?

有人能说出Objective-C的self和C++this指针之间的区别吗? 最佳答案 主要区别是this是一个关键字,而self是一个变量。这样做的结果是,虽然this总是引用正在执行特定方法的对象,但Objective-C方法可以自由修改self在执行期间。这有时被构造函数使用,它在失败时设置self=nil。这样做的原因是:这样子类(使用self=[superinit]链式初始化器)可以看到初始化失败的时间,并且知道不要在自己的初始化器中继续。组合对象可以看到失败并知道它们没有有效的组件。一些初始化器会将self设置为一个不同

c++ - 继承 : Function that returns self type?

假设我有两个类:classA{public:A*Hello(){returnthis;}}classB:publicclassA{public:B*World(){returnthis;}}假设我有一个B类的实例,如下所示:Btest;如果我调用test.World()->Hello()就可以了。但是test.Hello()->World()将无法工作,因为Hello()返回A类型。如何让Hello()返回B的类型?我不想使用virtual函数,因为我们有20多个不同的类继承A。 最佳答案 您可以使用CRTP,奇怪的重复模板模式:t

windows - 有没有办法在 Windows 中制作可 self 更新的可执行文件?

我想生成一个可以在加载前进行更新验证的可执行文件,然后,如果有更新,我希望它替换它的文件然后重新加载。我认为这比分离一个“更新程序”exe更好,因为如果必须更新更新程序怎么办?我无法在网络中共享文件夹。 最佳答案 https://stackoverflow.com/questions/264788/can-i-update-a-exe-that-is-running-closed是的,您可以让exe文件自行下载。只需将正在运行的exe重命名为.bak,将新的exe下载为.exe,然后重新启动应用程序。这里的关键是你不能在程序运行时下

c++ - 如何告诉 link.exe 使用 wmain 作为入口点。 LNK2019 : unresolved external symbol main referenced in function __tmainCRTStartup

我有一个通过visualstudio构建和链接的项目,但不是通过我们的构建系统。据我所知,如果定义了UNICODE,tchar.h包含一个将_tmain转换为wmain的宏。我检查了预处理器输出,确实_tmain已被wmain替换。包含wmain的文件随后编译得很好,但链接器提示main未定义。LNK2019:函数__tmainCRTStartup中引用的未解析外部符号mainwmain是否被我没有正确包含的另一组宏转换为main(由于缺少-D选项等),或者link.exe是否有一个指定入口点的特殊标志。谢谢。手动指定/entry:mainCRTStartup修复了它。编辑:我刚刚检查

windows - Git : remove totally nonexistent file from. ..好吧......来 self 不知道在哪里

我在Windows上使用git。我曾经添加过一个文件,然后将一个字母改成大写,然后用新名称再次添加。从那时起,我一直拥有这两个文件(一个大写,一次不是)。myFile.extmyfile.extGit总是将它解释为两个不同的文件(因为它配置区分大小写)但它实际上是同一个文件,所以它跟踪这个文件两次,每个名称一次。我现在已经从repo中删除了大写文件gitrm--cachedmyFile.ext所以现在我的文件只有一个轨道,这一切都很好。myfile.ext问题是,如果我想对较旧的提交进行checkout,git会说:error:Thefollowinguntrackedworkingt

windows - 如何解决LNK2019 unresolved external symbol DriverEntry referenced in function GsDriverEntry?

当我编译这个项目时https://github.com/namazso/hdd_serial_spoofer我收到上面的错误信息,我该如何解决?我正在使用vs2017和wdk10。(必须在release中编译,不支持Debug模式。本项目中没有DriverEntry函数,hwid.cpp中的EntryPoint(void*ntoskrn,void*image,void*alloc)函数才是真正的入口点。)我做了很多研究,但还是没能成功。我是内核模式驱动程序开发的菜鸟。 最佳答案 该项目使用(一个明显被忽略的)选项定义EntryPoi

python - 未绑定(bind)本地错误 : local variable 'full_path' referenced before assignment

将Window764位与Python2.7和Django1.4结合使用。MicrosoftWindows[Version6.1.7601]Copyright(c)2009MicrosoftCorporation.Allrightsreserved.C:\Django-1.4\django\bin\cms2>manage.pysyncdbCreatingtables...InstallingcustomSQL...Installingindexes...Traceback(mostrecentcalllast):File"C:\Django-1.4\django\bin\cms2\man

windows - 如何在 Windows UAP 应用程序中解决 "' IAsyncActionWithProgress< >' is defined in an assembly that is not referenced"

我正在VisualStudioUltimateCTP2015(网站上提供的最新应用程序)中开发一个WindowsUAP应用程序。我在对返回IAsyncActionWithProgress、IAsyncAction、IAsyncOperation和IAsyncOperationWithProgress的函数使用await时遇到问题。我收到以下错误错误CS0012“IAsyncActionWithProgress”类型在未引用的程序集中定义。您必须添加对程序集“Windows,Version=255.255.255.255,Culture=neutral,PublicKeyToken=nu

c++ - 如何进行文件 self 更新( native C++)

我在Windows目标部署中使用MicrosoftVisualStudio2008。我如何使文件“self更新”?我已经了解了“通过​​网络传输”部分,但如何使可执行文件覆盖自身?基本上,我想为一个目录编写一个自动更新程序,该目录还包含自动更新程序,并且更新程序需要更新目录中的所有内容。也许有一种方法可以在文件锁定被释放之前挂起对文件的更改。不过,如果我要这样做,我可能会用热补丁跟进。 最佳答案 编写一个新的可执行文件并删除或保存旧文件的拷贝——您可以通过网络发送一个差异文件,并让第三个程序(更新监视器或其他任何程序)来应用它。它只