你说的办法当然可以做到。你的做法在本质上就是把现在全局唯一的虚函数表在每个实例中都保留一个副本而已。
但代价是类实例的体积会极大膨胀:我们通常会有一些基类,只有少数几个关键信息,但是会有一堆的虚函数来做rtti。在这种情况下,你的这种办法会让这些实例都膨胀了很多倍。
当然,有代价无所谓,反正现在内存大。但问题是,这么做的好处在哪?我只想到了一条:编译器写起来更简单。但问题是,没几个人真的会自己手写c++编译器吧?
至于说private?
不喜欢的话,用struct就行了。你说别人用了?别人用了private,你也有大把办法去访问那些字段或方法——后果自负。仅此而已。
就算真用函数指针,其实就是把虚表从类移动到对象这里,每个对象一个虚表。
可能当年因为内存吃紧,这种操作没有被采纳吧。
话说回来,函数指向太灵活不见得是好事,会导致代码可读性下降。因为一个对象的某个方法到底指向什么,会变得很难确定。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有