1.问题:为什么我们没有一个指针参数,d1和d2却可以正确的初始化?
如图所示:
2.隐含的this
如图总结:
编译器会增加一个隐含的this指针,void Init(Date* this(隐含),int year, int month, int day)
1.this指针是隐含的,是编译器在编译阶段(把代码转换为汇编代码的阶段)加的,我们不能显示在调用和在函数定义加
2.可以在成员函数加,即this->_year(也可不加)
3.this指针存在栈上,(this和函数变量(Init)同是存在,函数变量就是在栈上,函数结束返回给系统)
3.【面试题】下面代码能运行吗,如果不能为什么?
解答:不可以,pa为空指针不能访问成员变量,但是可以访问函数变量;所以Print失败,Show可以