作者imlab ()
看板C_and_CPP
标题[问题] C++的继承
时间Sat Nov 21 00:00:12 2009
( *[1m *[m 为色码,可以按 Ctrl+V 预览会显示的颜色 )
( 未必需要依照此格式,文章条理清楚即可 )
遇到的问题: (题意请描述清楚)
有一个庞大的project, 需要修改里面所有的CString::LoadString()
我不想要一个一个去修改...
想说在project中写一个Class去继承CString, 在将LoadString覆载成我所需要的
但是遇到了operator似乎没有一起继承的问题。
也就是说只要遇到 CString+CString或是类似的"+""-""=" compile就会出现错误
想请教一下, 这样的做法是不是不恰当呢?
另外就是operator是不是没有办法继承呢?
希望得到的正确结果:
观念问题...
程式跑出来的错误结果:
无
开发平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
VC2005
有问题的code: (请善用置底文标色功能)
补充说明:
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.114.253.23
1F:推 dendrobium:friend function不会被继承 11/21 00:10
2F:推 dendrobium:operator= 也不会被继承 11/21 00:13
3F:推 holymars:operator=不是不会继承 是会被hide掉.. 11/21 01:59
4F:→ holymars:如果base class有ovardload operator=表示derived class 11/21 01:59
5F:→ holymars:即使你没重定义operator= compiler也会帮你自动生一个 11/21 02:00
6F:→ holymars:所以会把base class的operator= hide掉 11/21 02:00
7F:→ tinlans:这种状况下用继承去解恐怕最後也未必能达成你想要的目的。 11/21 02:48