zoukankan      html  css  js  c++  java
  • EC笔记,第一部分:4.确定对象初始化

    04.确定对象初始化

    将对象初始化,C++反复无常,所以在使用前应该手动初始化

    1.分清赋值与初始化

                以下例子:

    class test{

        public:

        int a;

        test(){

           a=0;//赋值而非初始化

        }

    };

     

    class test2{

        public:

        int a;

        test():a(0){//初始化

     

        }

    };

                第二种比第一种高效,有时甚至高效很多,第一种会调用default构造函数,然后赋值,这样defalit的调用就完全浪费了,而第二种避免了对default的调用

                注意,初始化列表中应该列出所有成员变量

                初始化是以声明次序初始化的

    2.关于非局部静态变量的初始化

                非局部静态变量往往出现在多个实现文件中,而他们的初始化顺序无法确定(导致的问题:一个非局部静态变量的初始化用了另一个非局部静态变量,而被使用的非局部静态变量未被初始化),最好的办法是定义一个包含局部静态变量的函数,函数返回该变量的引用,以此来避免在对象使用前未被初始化

     

     

     

     

     

  • 相关阅读:
    c# 第29节 类
    c# 第28节 面向对象概述
    c# 第27节 结构、枚举
    c# 第26节 Main方法
    c# 第25节 方法重载
    Python接口自动化之yaml配置文件
    Python接口自动化之数据驱动
    Python接口自动化之登录接口测试
    测试面试题集-逻辑推理题
    Python接口自动化之unittest单元测试
  • 原文地址:https://www.cnblogs.com/SkyFireITDIY/p/4374945.html
Copyright © 2011-2022 走看看