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

  • 相关阅读:
    树莓派_GPIO
    Python_PyQt_基本使用
    python_静态,组合,继承
    Linux_操作
    Pyqt5+eric6安装教程
    树莓派操作
    python_爬虫_requests
    HTML的基本操作
    python_pandas_numpy_json
    python_模块_sys_time_random_os
  • 原文地址:https://www.cnblogs.com/balingybj/p/4732048.html
Copyright © 2011-2022 走看看