一个小问题放倒一大批C++专家!

gpuboy gpuboy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
首先把“陈伟柱”这个2B翻译永远地钉在历史的耻辱柱上!然后再把“孟岩”这个职业书托痛打50大板!最后再说我的问题:

首先请同学诸君找到《C++代码设计与重用》这本书(电子书网上有),请翻到第31页。

首先书中给出了一个有理数类:

class Rational
{
public:
Rational(int a, int b)
: num(a), denom(b)
{}

void reduce() const
{
int gcd = 2;

Rational* let_me_modify = (Rational*)this;
let_me_modify->num /= gcd;
let_me_modify->denom /= gcd;
}

private:
int num;
int denom;
};

接着书中有这样一段话(翻译中的错别字原文照录):

“
试图使用旧式的cast转型对const对应的X对象进行转型,只有当被转型的类X具有不少于一个的显示构造函数时,类X的转型后的对象才会有X原来定义的行为。(大多是重要的类都能满足这个限制条件,即至少有一个显式构造函数)

译注:如上例,是指只有当Rational具有公共构造函数时,转型后的对象Let_me_modify才能调用它的成员变量num和denom。”

这段话本人看不懂,请教了好几位月薪3万以上的C++高手都没有看懂是什么意思。网上遍寻英文原文而不得,所以无法把问题放到StackOverflow去。只有放到CSDN看看是否有看得懂的C++高人。

谢谢!
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
gpuboy
C++ 语言 65,214 成员 250,514 内容