2017年4月20日

以非成员非友元替代成员函数

摘要: 面向对象要求数据应该尽可能的被封装,然而与直观相反,成员函数带来的封装性比非成员非友元要低。 非成员函数可以允许函数有较大的包裹弹性。 如果某些东西被封装,则不可见,不可见的东西越多则我们就有越大的弹性去变化他,因为我们改变的仅仅直接影响看到改变的那些人事物。 另一方面如果非成员友元和成员函数机能相 阅读全文

posted @ 2017-04-20 16:04 邗影 阅读(248) 评论(0) 推荐(0) 编辑

需要返回对象时候,不要以引用形式返回

摘要: 下边代码它返回的A的一个引用指向的s2是一个局部的,从前的,但是如今已经被销毁的对象引用,已经不存在的引用。因此请记住:不要返回一个指针或者引用指向一个局部对象。也不要用指针引用返回一个指向局部静态的对象。函数内的局部对象在函数块运行结束了就销毁了、、、、、、、、、、、、、、、、 const a& bilibili(const a&s) { return a s2(s.x+s.y); } 阅读全文

posted @ 2017-04-20 12:48 邗影 阅读(287) 评论(0) 推荐(0) 编辑

成对使用new和delete,传值传引用

摘要: 首先: delete []p;是用来删除对象数组的,特别是你声明的是对象数组!!! 如果new中用了【】,delete一定要用【】;在new中没有使用,在delete中一定不要使用。 其次: 当你使用new的时候,首先内存被分配 ,然后针对此块内存,会有相应的构造函数被调用。 delete使用的时候 阅读全文

posted @ 2017-04-20 12:30 邗影 阅读(330) 评论(0) 推荐(0) 编辑

导航