Toriyung

导航

C++新知识点:类和对象

学过python,基本差不多的东西

C++中,访问权限分为三类:

  public:  类内外

  protected:  类内(继承可以访问)

  private:  类内(继承也不可以访问)

 

定义实例: 注意结尾有" ;"

class My:
{
  public:
  int age;        
};

 

和struct的关系:

基本是一样,区别是默认权限struct--public;class--private

 

构造函数和析构函数

构造函数:

  创建对象时自动调用,用于初始化参数等

  定义:

My()   //名称同类名
{
  //function  
}

  分类:

    1. 普通

    2. 拷贝:传入为const 类名 &对象   ,将对象的数据属性拷贝进去,但同时不能更改原先的对象数据属性,所以加const

        出现场景:

            创建以旧对象的拷贝的新对象

            值传递传入函数时创建拷贝对象

            返回值

    1. 有参

    2. 无参

   调用:

    1. 括号法

      My p1   //默认,无参

      My p2(10)  //有参

      My p3(&p2)  //拷贝

    2. 显示法

      My p1 = My(10) 

      其中右侧的My(10)为匿名函数,因为有对象却没命名,命名在左侧

    3. 隐式转换

      My p1 = 10

      上式等价于My p1 = My(10)

  构造函数默认生成:

    创建类时,编译器自动生成三个函数:默认构造(空参数)、拷贝构造、析构。

    当类中有定义有参构造,则编译器生成拷贝构造、析构;当类中有定义拷贝构造,则编译器不再生成其他函数。

  注意:使用拷贝函数时,如使用浅拷贝,可能会出现析构函数先后释放同一内存空间的问题,应使用深拷贝避免问题。

析构函数:

  销毁对象时自动调用,用于清空参数,比如类中程序员使用new开辟的堆区空间,最终会被析构函数释放

  定义:  

~My()  //不能有参数
{
  //function  
}

   

posted on 2022-08-09 22:54  Toriyung  阅读(19)  评论(0编辑  收藏  举报