我是C ++的新手,但现在已经使用python了一段时间......我无法弄明白...... 我尝试使用“this”指针,但是我收到错误,所以我想知道是否有人能指出我正确的方向。
由于
这就是我想要实现的目标:
我有一个约会和一个人课,我必须添加一个班级方法来检查这个人是成人还是孩子
到目前为止,这是我的方法:
bool isAdult()
{
util::Date today = util::Date();
int age = today.getYear()- this.getYear();
if (today.getMonth() < this.getMonth() || (today.getMonth() == this.getMonth() && today.getDay() < this.getDay()))
{
age = age -1;
}
if (age >= 18)
{return true;}
else{return false;}
}
为什么我能做这样的事情:
ostringstream os;
os << getDay() << " \n";
os << getMonth() << " \n";
os << getYear();
但我不能这样做:
long year = getYear();
答案 0 :(得分:5)
在C ++中,this
是指针类型,因此您可能需要取消引用它以调用成员。
有两种方法可以取消引用调用成员的指针:
// Using the * operator to get the actual instance
auto result = (*this).do_something();
// Using the -> operator to dereference and get/invoke member simultaneously
auto result = this->do_something();