zoukankan      html  css  js  c++  java
  • C++中对象初始化

     在C++中对象要在使用前初始化,永远在使用对象之前先将它初始化。

       1.对于无任何成员的内置类型,必须手工完成此事。

          例如:

             int x=0;

             double d;

             std::cin>>d;

        2.内置对象以外的东西,初始化责任落在构造函数身上。确保每一个构造函数都将对象的每一个成员初始化。

         例如:

              class Point {......};

              class Point3d

              {

                public:

                        Point3d(Point pt,int z);

                 private:
                       Point _pt;

                       int _z;

                 };

     

                Point3d::Point3d(Point pt,int z):_pt(pt),_z(z) { }  //初始化

               Point3d::Point3d(Point pt,int z)

                {

                     _pt=pt;

                     _z=z;             //这些都是赋值,而非初始化

                 }

     

               3.赋值和初始化时不同的

              赋值:  对_pt 是先调用default构造函数,然后在立刻对它们赋予新值。(也可能copy assignment)

              成员初值列(member initialization list):直接是copy构造。提高了效率。

             对于_z两种方法效率相同。

     

              4.利用成员初值列初始化时,要注意的。

               C++有着十分固定的成员初始化次序。

               初始化次序和对象的声明顺序是一致的。而不是成员初值列的顺序,在用一个对象给另个对象初始化,一定保证这个对象初始化在另个一个对象之前进行。

    转载自:http://blog.csdn.net/cq20110310/article/details/7265656

  • 相关阅读:
    SPOJ SAMER08A
    SPOJ TRAFFICN
    CS Academy Set Subtraction
    CS Academy Bad Triplet
    CF Round 432 C. Five Dimensional Points
    CF Round 432 B. Arpa and an exam about geometry
    SPOJ INVCNT
    CS Academy Palindromic Tree
    身体训练
    简单瞎搞题
  • 原文地址:https://www.cnblogs.com/balingybj/p/4732048.html
Copyright © 2011-2022 走看看