草庐IT

xor_this

全部标签

c# - 这里的 "this"关键字是什么意思?

一个非常短的C#函数。publicstaticintSizeInBytes(thisbyte[]a){returnsizeof(int)+a.Length*sizeof(byte);}这个函数中的“this”关键字是什么意思?C++中this关键字的等价物是什么?此外,这个函数试图准确计算什么? 最佳答案 它将方法标记为extensionmethod.扩展方法允许您扩展任何类的功能,即使它是密封的。例子:publicstaticclassStringExtensions{publicstaticboolIsEmpty(thisstr

C++ operator= 返回对 *this 的引用

看下面的代码:#includeusingnamespacestd;classWidet{public:Widet(intval=0):value(val){}Widet&operator=(Widet&rhs){value=rhs.value;return*this;}intgetValue(){returnvalue;}private:intvalue;};intmain(){Widetobj1(1);Widetobj2(2);Widetobj3(0);(obj3=obj2)=obj1;cout代码运行成功,输出为(使用VS2008):当我让operator=返回一个值而不是引用时:

c++ - 带有插入符号操作的字符 XOR

我很清楚在位上使用异或。但在这里,XOR处理的是单个字符。那么这是否意味着构成字符的字节正在被异或?这看起来像什么?#includeintmain(){charstring[11]="Anicecat";charkey[11]="ABCDEFGHIJ";for(intx=0;x我知道位XORed看起来像这样:101011000110 最佳答案 XOR有一个很好的特性,即如果您使用相同的数据对某些内容进行两次XOR,您将获得原始数据。您发布的代码是一些基本的加密功能,它使用key“加密”字符串。生成的密文可以通过相同的程序进行解密。

c++ - 在派生对象到基类的 "this"指针上使用 static_cast 的问题

这是取自EffectiveC++3ed的一个例子,它说如果这样使用static_cast,对象的基础部分被复制,并且调用从该部分调用。我想了解幕后发生的事情,有人会帮忙吗?classWindow{//baseclasspublic:virtualvoidonResize(){}//baseonResizeimpl};classSpecialWindow:publicWindow{//derivedclasspublic:virtualvoidonResize(){//derivedonResizeimpl;static_cast(*this).onResize();//cast*thi

c++ - 那么 "this"的类型是什么?为什么 "this"不是左值?

假设对象是classA{public:voidSilly(){this=0x12341234;}我知道我会得到编译器错误““this”不是左值。”但那也不是暂时的。那么“this”的假设声明是什么?编译器:Mac上的GCC4.2编译器。 最佳答案 对于某些X类,this类型为X*this;,但你不允许分配给它,所以即使它实际上没有类型X*constthis,就阻止分配而言,它的行为几乎就像它一样。正式地,它是prvalue,这与类似整数文字的类别相同,因此尝试分配给它大致等同于尝试为'a'分配不同的值。或10.请注意,在早期C++中

类型问题将``this`作为参数''转到超载方法

我遇到了一些奇怪的行为,称其在继承链中列出了一个过载的虚拟方法,该方法扩展了最终保存WPF窗口类的视图。超载方法将更派生的界面作为参数,但该调用似乎使较小的派生接口参数的方法成为了。以下是该视图的继承链的相关部分,我期望将IWPfWindow作为参数的被覆盖方法称为:publicclassEmbeddedBrowserWpfView:WpfView{protectedIEmbeddedWpfBrowserBrowser{get;}protectedIEmbeddedWpfBrowserFactoryBrowserFactory{get;}protectedEmbeddedBrowserWpfV

java - "this"的重要性

我正在使用cocos2dx在C++中进行编程,并在添加Sprite或对象时,this->addChild(something)和addChild(something)有效。两种方式都得出相同的结果。但不仅在c++中,this也在android编程中使用(也许,所有编程语言都使用“this”?)。我在Java中使用它来用简单的this替换ClassName.class。但除此目的外,this还用于许多方面。但是因为我没有深入研究编程语言,所以我不知道它们是否真的做同样的工作(this->addChildvs.addChildANDClassName.class与this)。为什么我们需要

c++ - 为什么 this 不能作为成员函数中的默认参数传递?

我试图将长度的当前值作为默认参数作为函数参数传递。但是编译器显示错误"'this'maynotbeusedinthiscontext"谁能告诉我我犯了什么错误。?classA{private:intlength;public:A();voiddisplay(intl=this->length){cout 最佳答案 您的成员函数:voiddisplay(intl=this->length)在概念上等同于:voiddisplay(A*this,intl=this->length);//translatedbythecompiler这意味

c++ - 即使正确使用 make_shared,shared_from_this() 也会导致 std::bad_weak_ptr

我正在使用独立的Asio和C++11创建一个C++服务器应用程序,但遇到错误,这就是我寻求帮助的原因。错误在类里面worker_thread,在通话期间shared_from_this(),一个bad_weak_ptr引发异常,导致程序崩溃。布局类(class)connection_manager创建并存储std::shared_ptr类型的对象在std::vector里面容器类(class)worker_thread继承自std::enable_shared_from_this.类(class)worker_thread创建std::shared_ptr类型的对象.类(class)c

c++ - Superclass::method 或 this-> 方法之间的区别

如何以及何时调用父类(superclass)方法?两个选项请引用代码段:classSuperClass{public:voidmethod();};classSubClass:publicSuperClass{public:voidsomeOtherMethdo(){this->method();SuperClass::method();}}; 最佳答案 使用this->method()调用一个函数,该函数要么在您的父类(superclass)中实现,要么由您自己的类实现。当使用superClass::method()时,您一定要调