2012-6-25 c++的一些知识(总算是明白了) 初学者

来源:互联网 发布:淘宝jbl官方旗舰店 编辑:程序博客网 时间:2024/05/16 19:15

http://blog.csdn.net/zhanxinhang/article/details/6786269

c++面向对象编程必备“良方

针对自己编程过程中遇到的问题,记录一下(作者已经总结好了,copy作为日志)

药方1 ☞ 必需时刻明白面向对象编程中要扮演的两个角色,一个就是你,类的设计者,一个就是用户,类的使用者,你的设计是针对用户而言的,当然你也可能是身兼两职,同时是设计者又是用户。

药方2 
☞ 设计一个类时,将声明放于头文件,定义放在cpp文件中,因为类是给用户使用的,将声明放在头文件中,用户便可以方便使用,而定义在cpp文件中主要是为了两点,一提高编译效率,二避免用户包含文件后发生重定义。

药方3 
☞ 声明完一个类后必须以分号结束,因为声明完一个类后后面还可以加一个对象名,用来声明该类的实例化对象,分号‘;’ 不是表示声明的结束,而是表示声明该类对象的结束,如果单纯一个分号表示没有声明任一对象。

药方4 ☞ 避免在构造函数里实例化本类,否则会发生递归死循环。


药方17☞ 在继承层次中,基类应该定义一个虚析构函数,因为非虚析构函数不会被继承,而虚析构函数会在派生类定义析构函数时发生重定义(就是虚表指针指向了派生类的析构函数)。在利用基类指针实现多态时,基类指针指向了新开辟(new)的派生类对象,这时由于基类的析构函数是虚的,所以再利用基类指针释放(delete)掉派生类对象内存时,就可以顺利地执行派生类的析构函数了。

补充:

以前遇到hpp还以为是个什么东东呢!

hpp=h+cpp,它本质是让编译器只对hpp文件里的内容编译一次,然后将目标代码附到包含它的cpp目标文件中。一般设计类时应该是h和cpp分开来,因为这更符合软件工程中的方法。hpp一般都是设计模板类的时候使用的多。
原创粉丝点击