美文网首页
C++ tip5 构造函数和析构函数

C++ tip5 构造函数和析构函数

作者: Laughingg | 来源:发表于2016-06-14 23:39 被阅读26次

构造函数: 在对象实例化的时候被自动调用。

构造函数与类同名
构造函数没有返回值。
构造函数可以进行重载。
实例化对象时仅用到一个构造函数。
用户没有定义构造函数时候,系统会创建一个默认的。

定义构造函数:

class Student {
    public: 
        // 无参数
          Student(){
          m_strName = "xiaosan";  
    }

        // 有参数
        Student(string name){
          m_strName = name;  
    }
    private:
        string m_strName;
}
对象初始化
Student t1;
Student t2("shabi");

注意点:

Student(){
    m_strName = "xiaosan";  
}
 Student(string name = "sss"){
    m_strName = name; 
}  

当要调用的时候,如果需要使用默认值。
Student t1();
Student t2();

这样调用时有冲突的。

构造函数初始化列表

默认构造函数:在创建对象不需要传参数的构造函数。
class Student {
      public: 
      Student(){}
      Student(string name = "jim")
      // 上面两个是一样的
}
class Student {
  public: 
      // 这里使用的是函数的初始化列表
      /*
        使用初始化列表先于构造函数执行。
        使用初始化列表可以给 常量赋值。
        初始化列表只能用于构造函数。可以同时初始化多个值。
      */
      Student(): m_strMame("jim"), m_iAge(10){}
      Student(string name = "jim")
      // 上面两个是一样的
  private:
      string m_strName;
      int m_iAge;
}

拷贝构造函数

class Student {
      public: 
      Student(){
      m_strName = "ssss"
  }
      // 拷贝构造函数
      // 格式: 类名(const 类名 & 变量名)
      Student( const Student& stu){
}

      private:
        string m_strName;
      
      // 上面两个是一样的
}



Student stu1;
Student stu2 = stu1;
Student stu3(stu1);

初始化了三次,但是构造函数就调用了一次。
stu2 和 stu3 的初始化是使用 拷贝构造函数来实现的

注意: 当采用赋值初始化,和使用对象进行初始化的时候使用的是。拷贝构造函数。

析构函数
归还使用的系统资源

// 这就是一个析构函数
// 没有参数,也没有重载的概念
~类名(){

}

相关文章

  • 简介python中的析构函数与构造函数

    python的构造和析构函数为固定的名字。 构造函数 析构函数 不像c++中那样构造函数和析构函数是类名字。并且在...

  • c++学习笔记2(GeekBand)

    拷贝构造、拷贝赋值和析构 c++中有Big Three三个特殊的函数,他们就是拷贝构造函数,拷贝赋值函数和析构函数...

  • c++构造函数,析构函数,调用顺序

    最近,在看c++,聊一个简单的话题吧。构造函数,析构函数,及调用顺序。 构造函数, 构造函数,析构函数,如上代码所...

  • [C++之旅] 13 析构函数

    [C++之旅] 13 析构函数 析构函数与构造函数相反,构造函数在实例化一个对象时调用,而析构函数在销毁一个对象时...

  • 2002.C++BASE-构造函数、析构函数

    转:C++继承中构造函数、析构函数调用顺序及虚析构函数 1.构造函数 大家都知道构造函数里就可以调用成员变量,而继...

  • windows逆向3

    VC 程序内存和编译的一些特征C++ 构造函数C++ 成员函数C++ 析构函数C++ 全局对象的构造C++ 全局对...

  • Effective C++笔记

    2.构造/析构/赋值运算 条款05:了解C++默默编写并调用哪些函数 默认构造函数和析构函数主要是给编译器一个地方...

  • Python:重载构造方法

    对于使用过C++的人来说,构造函数与析构函数不会陌生。构造函数在对象创建时被调用,析构函数在对象被销毁时被调用。而...

  • 构造函数和析构函数

    鸡啄米:C++编程入门系列之十四(类与对象:构造函数和析构函数)

  • C++ 构造和析构函数

    C++ 构造和析构函数 构造函数 类的设计者通过提供一个构造函数(constructor)的特殊函数来保证每个对象...

网友评论

      本文标题:C++ tip5 构造函数和析构函数

      本文链接:https://www.haomeiwen.com/subject/gciudttx.html