zoukankan      html  css  js  c++  java
  • 类对象的建立方式总结

    类对象的构造

    再次阅读与总结C++程序设计语言,依然能够引发深刻的思考与再思考~~~
    =======================================================================================
    考虑建立对象(特别是类对象)的各种不同方式,以及它们在后来怎么销毁。一个对象可以通过如下方式建立:
    • 一个命名的自动对象,当程序的执行每次遇到它的声明时建立,每次程序离开它所出现的块时销毁;
    • 一个自由存储对象,通过new运算符建立,通过delete运算符销毁;
    • 一个非静态成员对象,作为另一个类对象的成员,在它作为成员的那个对象建立或者销毁时,它也随之被建立或销毁;
    • 一个数组元素,在它作为元素的那个数组被建立或销毁时建立或销毁;
    • 一个局部静态对象,在程序执行中第一次遇见它的声明时建立一次,在程序终止时销毁一次;
    • 一个全局对象、名字空间的对象、类的静态对象,它们只在“程序开始时”建立一次,在程序终止时建立一次;
    • 一个临时对象,作为表达式求值的一部分被建立,在它所出现的那个完整表达式的最后被销毁;
    • 一个在分配操作中由所提供的参数控制,在通过用户提供的函数获得的存储里放置的对象;
    • 一个union成员,它不能有构造函数和析构函数

    面向对象 --- 类 忠告

    1. 用类表示概念
    2. 只将public数据(struct)用在它实际上仅仅是数据,而且对于这些数据成员并不存在不变式的地方;
    3. 一个具体类型属于最简单的类。如果适用的话,就应该尽可能使用具体类型,而不要采用更复杂的类,也不要使用简单的数据结构;
    4. 只将那些需要直接访问类的表示的函数作为成员函数;
    5. 采用名字空间,使类与其协助函数之间的关系更明确;
    6. 将那些不修改对象值的成员函数做成const成员函数;
    7. 将那些需要访问类的表示,但无需针对特定对象调用的成员函数做成static成员函数;
    8. 通过构造函数建立起类的不变式;
    9. 如果构造函数申请某种资源,析构函数就应该释放这一资源;
    10. 如果在一个类里有指针成员,它就需要有复制操作(包括复制构造函数和复制赋值);
    11. 如果一个类里有引用成员,它就可能需要有复制操作(复制构造函数和复制赋值);
    12. 如果一个类需要复制操作或析构函数,它多半还有构造函数、析构函数、复制赋值和复制构造函数;
    13. 在复制赋值里需要检查自我赋值;
    14. 在写复制构造函数时,请小心的复制每个需要复制的元素(当心默认的初始式);
    15. 在向某个类中添加新成员时,一定要仔细检查,看是否存在需要更新的用户定义构造函数,以使它能够初始化新成员;
    16. 在类声明里需要定义整型常量时,请使用枚举;
    17. 在构造全局的和名字空间的对象时,应避免顺序依赖性;
    18. 用第一次开关去缓和顺序依赖性问题;
    19. 请记住,临时对象将在建立它们的那个完整表达式结束时销毁。
  • 相关阅读:
    在javaWeb 工程中 tomcat 的 web.xml 文件配置
    Spring 框架详解
    构建工具 Maven和Gradle对比
    idea 创建Javaweb 动态工程
    服务器后端 项目代码常用目录图
    ET模式下的EPOLLOUT
    linux recv 参数len设置为0
    fork 和 exec 对子进程继承父进程处理信号处理函数的影响
    lua元表以及元方法
    Linux网络编程“惊群”问题总结
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214698.html
Copyright © 2011-2022 走看看