【发布时间】:2015-04-02 20:25:16
【问题描述】:
有点愚蠢的问题,但我突然想到了这个问题:
为什么点运算符可以用于对象的私有成员(在成员/朋友函数中)?我承认我已经使用了一段时间了,但直到现在我才想到它。但是考虑到它是用于公共成员函数的,这就有点奇怪了。
谁能提供一些见解?
例如(编辑:我正在学习课堂上的重载运算符):
rational rational::operator/(const rational &obj2) const
{
rational value;
value.num = (*this).num * obj2.denom;
value.denom = (*this).denom * obj2.num;
return value;
}
感谢所有回答的人! :)
【问题讨论】:
-
为什么需要不同的运营商?
-
在课堂上学习重载运算符。
-
您的
operator/将如何访问obj2的成员? -
没有其他方法 - 我知道在这种情况下我可以使用点运算符,但我想知道为什么以及如何在仅限于类的公共成员时使用它对象(这是不真实的,我已经知道了)
-
但是你从来没有学到其他东西。操作员不依赖访问控制。您刚刚制定了一个任意规则并询问为什么它不适用。你的问题没有意义。