zoukankan      html  css  js  c++  java
  • 13.0 C++远征:this指针

    4-6this指针

    Array printInfo();——要求返回值类型是一个对象

    Array Array::printInfo(){
    	return *this;	//返回出去之后的*this指针是一个临时的对象,并不是arr对象
    }
    
    Array& Array::printInfo(){
    	return *this;	//这样返回出去的就是arr1了。  在类中也要这样定义,加入引用之后,一切都清晰起来了
    }
    
    使用点号可以将多个方法穿起来使用
    声明和定义函数用的是&,即为引用,返回值要加*,即为return *this; 调用函数是用点号.
    声明和定义函数用的是*,即为指针,返回值不用加* ,即为return this;调用函数是用->
    
    1.可用this指针做返回
    2.*this对象做返回与引用Array &配合
    都可对原对象做操作
    
    class Array
    {
    public:
    	Array(int len);
    	~Array();
    	Array* setLen(int len);//注意
    	int getLen();
    	Array& printInfo();//注意
    private:
    	int len;
    };
    Array* Array::setLen(int len)
    {
    	this->len = len;
    	return this;
    }
    Array&  Array::printInfo()
    {
    	cout<<"len = "<<len<<endl;
    	return *this;
    }
    int main(void)
    {
    	Array arr1(10);
    	arr1.printInfo().setLen(5)->printInfo();//这里都是针对arr1的操作
    	system("pause");
    	return 0;
    }
    
  • 相关阅读:
    javascript DOM操作
    DirectX编译出现link错误
    PPT快捷键
    Windows GDI笔记
    VC++键盘消息
    VC++6.0快捷键
    C#值类型和引用类型
    C#转义字符
    关于C#里“浅表副本”的解释
    C#中override和overload的区别
  • 原文地址:https://www.cnblogs.com/xiaoqingyang/p/6076913.html
Copyright © 2011-2022 走看看