北京网站建设app,软件工程师证书有用吗,漳州微信网站建设电话,wordpress新注册用户欢迎const Date* operator() const
{ return this;
}
我们要明白operator()这个函数是做什么的。
在C中#xff0c;操作符通常用于获取一个对象的地址。但是#xff0c;有时候我们想要自定义这个行为#xff0c;比如说#xff0c;我们想要控制别人怎么获取…const Date* operator() const
{ return this;
}
我们要明白operator()这个函数是做什么的。
在C中操作符通常用于获取一个对象的地址。但是有时候我们想要自定义这个行为比如说我们想要控制别人怎么获取我们对象的地址。这时我们就可以重载operator()函数。 现在我们来看const Date* operator() const这个声明。这里面有两个const我们一个一个来说。 第一个const在Date*前面 这个const是告诉我们通过这个operator()函数返回的指针它指向的是一个“不能改”的Date对象。
就像你有一个玩具车但是有人告诉你这个玩具车是“不能拆”的你只能看不能拆开它里面的零件。这里的“不能改”的Date对象也是这个意思你只能通过这个指针来访问Date对象的内容但是不能修改它。 第二个const在函数声明的末尾 这个const其实是告诉我们这个函数是一个“不会改变对象状态”的函数。就像你去图书馆借书你只是在图书馆里看看书不会把书带走或者把书弄坏。
这里的函数也是这样的它只是在你的对象上做了一个“查看地址”的操作没有做任何会改变你对象状态的事情。
对于operator()这个函数来说加上这个const可以让代码更加清晰表明这个函数的意图是安全的可以在常量对象上调用。 总结一下const Date* operator() const这个函数的意思是
“我提供了一个获取我对象地址的方法但是这个地址指向的是一个你不能修改的Date对象而且这个方法本身也不会改变我的对象状态。”
这样别人就可以安全地通过这个方法来获取你的对象的地址同时也不用担心会不小心修改到你的对象。