草庐IT

this-reference

全部标签

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++ - 继续获取 "error: use of undeclared identifier ' cout' 和错误 : reference to overloaded function could not be resolved

我正在编写一个使用许多不同函数的排序程序,你们都可以从我的声明。但是,当我尝试编译和运行我的程序时,我不断遇到这些相同的错误它们如下:error:useofundeclaredidentifier'cout';didyoumean'count'?couterror:referencetooverloadedfunctioncouldnotberesolved;didyoumeantocallit?couterror:useofundeclaredidentifier'endl';didyoumean'end'?cout我不太确定为什么会出现这些错误....我想我已经包含了我需要的一切为

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

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

c++ - GLFW undefined reference

我试图在一个项目上使用GLFW,但是当我编译它时,我遇到了很多undefinedreference错误,而其中许多错误都在库文件(libglfw.a)上。我都试过了,编译库并下载它,但没有成功。我正在使用在Windows732位netbeans上运行的MinGW和MSYS。GLFW版本为2.7.3;这些是错误:"/usr/bin/make"-fnbproject/Makefile-Debug.mkQMAKE=SUBPROJECTS=.build-confmake[1]:Enteringdirectory`/c/Users/Raphael/Documents/NetBeansProjec

c++ - 在 C++ 中,我希望我的接口(interface) .h 说 int GetSomeInt() const;.... 但实际上方法 *DOES* 更新 "this"。

我正在向const方法添加一些惰性初始化逻辑,这使得该方法实际上不是const。有没有办法让我不必从公共(public)界面中删除“const”就可以做到这一点?intMyClass::GetSomeInt()const{//lazylogicif(m_bFirstTime){m_bFirstTime=false;Dosomethingonce}returnsomeint...}编辑:“可变”关键字在这里起作用吗? 最佳答案 使m_bFirstTime可变:classMyClass{::mutableboolm_bFirstTime

c++ - 使用 GLFW3 编译,链接器错误 'undefined reference'

有一个使用GLFW3的最小示例:#includeintmain(intargc,constchar*argv[]){glfwInit();}...导致大量链接器错误:(小摘录)Undefinedsymbolsforarchitecturex86_64:"_CFArrayAppendValue",referencedfrom:_addJoystickElementinlibglfw3.a(cocoa_joystick.m.o)"_CFArrayApplyFunction",referencedfrom:__glfwInitJoysticksinlibglfw3.a(cocoa_joyst