C++C++

C++——this指针

2018-12-18  本文已影响3人  d16ug_a1l

this指针的出现是因为在早期没有c++编译器,c++程序只能使用c语言的编译器进行编译。所以c++的程序先需要翻译为程序。

C++程序如下:

class Demo

{

int id;

public :

Demo(int i)

{

id = i;

cout << "id = " << id << "创建" << endl;

}

~Demo()

{

cout << "id =" << id << "释放" << endl;

}

void Func_a(int i)

{

id = i;

cout << "类函数" << id << endl;

}

};

int main()

{

Demo A(1);

A.Func_a(20);

return 0;

}

翻译后的C程序:

#include "pch.h"

#include <iostream>

using namespace std;

struct Demo

{

int id;

};

void Func_a(struct Demo * this, int i)

{

cout << "类函数" << i << endl;

}

int mian()

{

struct Demo A;

Func_a(&A,20);

return  0;

}

this指针的作用就是指向成员函数所作用的对象。

class shi_shu

{

public:

int shi_bu, xv_bu;

shi_shu();

shi_shu(int i,int j);

~shi_shu();

shi_shu add_one()

{

this->shi_bu++;

this->xv_bu++;

return *this;

}

int print()

{

std::cout << " " << shi_bu << " " << xv_bu << std::endl;

return 0;

}

};

shi_shu::shi_shu()

{

}

shi_shu::shi_shu(int i,int j)

{

shi_bu = i;

xv_bu = j;

}

shi_shu::~shi_shu()

{

}

int main()

{

    std::cout << "Hello World!\n";

shi_shu A(1,2),B;

A.print();

B = A.add_one();//将A对象中的值++后拷贝给B对象

B.print();

}

上一篇 下一篇

猜你喜欢

热点阅读