前言
我也在适应写技术文章,我个人觉得我目前写的比较水。我任然会坚持下去。坚持这个精神也是需要可以练习的。在这个浮躁的社会,找准自己的方向。时光不语,静等花开。从默默无闻到崭露头角,一般只需要一瞬间,看似一瞬间,可能要等十几年。我从自己的人生经历中得知,一定要耐得住性子,去做一件事情,不焦虑,不心急。不然,我现在估计已经在某个211大学的校园里和自己心仪的对象谈恋爱了。
正文
今天继续讲C++的this指针。当我们学一个新知识点的时候,都有他们自己的存在价值。为什么出现这些知识点,因为这样的知识更加的高效。还有另一个说法那就是语言开发者是个 “懒逼”。this 大家都应该认识英文意思吧。像这种严肃的知识,名字都不是乱取的哟。简单的翻译一下是 “这”,我想把它翻译为“当前这个”。指针大家应该都熟悉吧,毕竟越头痛的越容易被记住。接下来我们直接上内容。
在C++中,每一个对象都能通过this指针访问自己的地址,this指针是所有函数的隐含参数,有一个例外。那就是友元函数,因为友元函数不是类的成员。
那我们继续,this指针的使用:
一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用 return *this;另外一种情况是当参数与成员变量名相同时,如this->n = n (不能写成n = n)。为什么不是.而是->,那是因为当为指针的时候,本身就使用这个语法知识点。这个this指针可以节约许多的代码。
上代码
#include <iostream>
using namespace std;
class Box
{
public:
// 构造函数定义,自动初始化
Box(double l=2.0, double b=2.0, double h=2.0)
{
cout <<"Constructor called." << endl;
length = l;
breadth = b;
height = h;
}
double Volume()//体积的计算
{
return length * breadth * height;
}
//这里运用了this指针,这个指针的地址为当前类的地址
int compare(Box box)
{
return this->Volume() > box.Volume();//这里返回的四bool值,真或者假。
}
private:
double length;
double breadth;
double height;
};
int main(void)
{
Box Box1(3.3, 1.2, 1.5); // Declare box1
Box Box2(8.5, 6.0, 2.0); // Declare box2
if(Box1.compare(Box2))
{
cout << "Box2 is smaller than Box1" <<endl;
}
else
{
cout << "Box2 is equal to or larger than Box1" <<endl;
}
return 0;
}
总结
静待花开 ,走好当下