C++的两个特性在大型工程里是很危险

第一个是建构和析构函数,在函数里面声明了一个变量,

好像什么都没做,但在建构和析构函数里调用了一大坨的东西,

review代码的时候就容易被忽略掉。

第二个是同名的方法,隐式调用。对一个多次继承的指针的同名方法的调用,

一眼看过去,不知道调用的是那个父类的方法,

这些父类的方法虽然同名但实际作用可能完全不同。

上述两个特性都是要在了解工程全部来龙去脉后才能正确使用,

这就对大型工程的维护提出了难题,当只阅读局部代码是搞不清楚

状况甚至误解导致出错。

 第三个问题是界定某个函数的使用范围破费脑筋。

很可能的情况是在某个类需要建立一个方法来解决某个问题,

又发现其他同父的类也需要这个方法,就把这个类提升到父类,

又可能发现其他的类也需要这个方法,

两难,是把这个方法放到两个不同的类里面,还是把原本不是一个父类的

两个类继承同一个父类,或者干脆新建了一个父类给这两个类去继承。

无论如何想单独维护这个方法的想法就变得极复杂。

搞不好最后又变成了静态函数可以全局使用。

总结下来这东西纯粹是在自己玩自己。

 

继续增加

在c++一个类里面对数据的管理基本是失控状态,尤其数据比较多的类。

数据的实效性没有管理都是随着类的创建而创建删除而删除,

一个方法使用数据的范围完全是隐式的,函数参数成了个摆设,

不知不觉就可能横跨几个类使用数据,造成类和类之间的数据耦合埋下隐患。

对一个类的修改也会力不从心,一眼望去很难看出有多少数据地雷埋在下面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值