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.关于非局部静态变量的初始化

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

     

     

     

     

     

  • 相关阅读:
    2012 Multi-University #8
    2016"百度之星"
    Codeforces Round #352 (Div. 2)
    数位DP CF 55D Beautiful numbers
    数位DP GYM 100827 E Hill Number
    2012 Multi-University #9
    2012 Multi-University #10
    java生成指定范围的随机数
    MySql查询时间段的方法
    eclipse报错GC overhead limit exceed,卡顿
  • 原文地址:https://www.cnblogs.com/SkyFireITDIY/p/4374945.html
Copyright © 2011-2022 走看看