C++面向对象程序设计课程笔记(第三周)
第一节 this指针 1.C++程序到C程序的翻译 图1 从C++到C C++中的class在C语言中并不存在,因此可以用struct(结构体)来代替,成员变量也可以直接用域来代替,但是类中的成员函数却无法在C语言中直接表示,所以只能把SetPrice设置为全局函数。由于是全局函数,为了能让其使用结构体内的数据,故在SetPrice中增加了一个参数struct CCar *this,这样就可以在函数体中把p的值传递给结构体中的price,实现了跟成员函数一样的功能,同理,在main()中SetPrice函数执行也得把car的地址传递过去。 故,this的作用就是指向成员函数所作用的对象。 2.this指针作用 (1)非静态成员函数中可以直接使用this来代表指向该函数作用的对象的指针。 图2 this指针作用 在main()函数中,首先对对象c1执行了AddOne()函数,然后开始执行AddOne(),对c1中的real加1,然后执行对c1的Print()函数,这之后,返回一个this指针所指向对Complex对象(即c1)给c2。 对this指针再加深一个理解,如下例: class ...