Chapter 8 怎样使用类和对象(上篇)

这篇具有很好参考价值的文章主要介绍了Chapter 8 怎样使用类和对象(上篇)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目的:更进一步了解类和对象的概念

⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️

8.1 对象的初始化

1.类中的初始化比较特殊,并不是直接赋值,下面是错误案例❌❌❌

class P
{
   int hour=0;//这样是不可以的
   int minute=0;

};

所以我们会引进构造函数,尤其重要的构造函数

2.用构造函数实现数据成员的初始化

a:构造函数的定义:是一种特殊的成员函数,用来初始化的,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行

3.注意⚠️—构造函数:

a:构造函数的名字必须与类同名,而不能任意取名,目的是使系统更好以构造函数处理

b:它不具有返回值,因此也没有类型,他的作用只是对对像进行初始化,因此也不需要在定义构造函数时声明类型,这是他和一般函数的重要不同点

c:在建立对象时会自动调用构造函数,在建立对象时系统会为该对象分配单元,每建立一次对象,就调用一次构造函数,下面是错误示范❌❌❌

int Time()//两种都不行
{···}
  

void Time()
{···}

e:构造函数不需要用户调用,也不能被用户调用,且构造函数一般声明为public,下面是错误示范❌❌❌

        t1.Time();

f:可以用一个类对象初始化另一个类对象

Time t1;//建立对象t1,同时调用构造函数
Time t2=t1;//建立对象,并用一个t1初始化t2

g:在构造函数中除赋值语句外,也可以加入其他语句,但是并不提倡,以保持程序清晰

h:如果用户自己没有定义构造函数,系统会自动生成一个构造函数,只是这个构造函数的函数体是空的,也没有参数,不执行初始化操作

4.带参数的构造函数

a:函数首部形式:构造函数名(类型1 形参1,类型1形参2····)

b:定义形式:类名 对象名(实参1,实参2)

c:两种代码效果是一样

Box::Box(int h,int w,int len)
{
   height=h;
   width=w;
   length=len;
}
Box::Box(int h,int w,int len):height(h),width(w),length(len){}

注意⚠️:如果数据成员是数组,则应当在构造函数的函数体中用语句对其赋值,而不能在参数初始化表中对其初始化

5.参数重载

a:这些构造函数具有相同的名字,而参数的个数或参数的类型不相同,这称为构造函数的重载

6.补充—函数重载

a:在建立对象时不必给出实参的构造函数,则称为默认构造函数

b:一个类只能有一个默认的构造函数,如果用户希望在创造对象时就能使数据成员有初值,就必须自己定义构造函数

d:在建立对象时选用的是无构造函数,在定义对象时要有正确的形式

Box x1();//错误的❌❌❌
Box x1;//正确的

e:如果在一个类中可以包含多个构造函数,建立对象时只执行其中一个构造函数

6.构造函数中可以使用默认参数

a:构造函数中参数的值即可以通过实惨传递,也可以指定为某些默认值,即如果用户不指定参数值,编译系统就使形参取默认值

b:应在声明构造函数时默认值,而不能只在定义构造函数时指定默认值,因为类声明是放在头文件中,它是类的对外接口,用户是可以看到的,而函数的定义是类的实现细节,用户往往是看不到的

c:一个类只能有一个默认构造函数,也就是说,可以不用参数而调用的构造函数,一个类只有一个

6.利用析构函数进行清理工作

a:有4种情况会出现析构函数

(1)如果在一个函数中定义了一个对象,当这个函数被调用结束时,对象应该释放,在对象释放前自动执行析构函数

(2)静态局部对象在函数调用结束时对象并不释放,因此也不调用析构函数,只在main函数结束或调用exit函数结束程序时,才调用static局部对象的析构函数

(3)如果调用new运算符动态的建立了一个对象,当用delete运算符释放该对象时,先调用该对象的析构函数

b:析构函数的作用并不是删除对象,而是在撤销对象占用的内存之前完成一些“清理”工作

c:析构函数还可以被用来执行用户希望在最后一次使用对象之后所执行的任何操作

d:析构函数在C++中要用“~”位取反运算符

7.区别构造函数和析构函数的顺序,就是一个口号“先构造的后析构,后构造的先析构文章来源地址https://www.toymoban.com/news/detail-817142.html

到了这里,关于Chapter 8 怎样使用类和对象(上篇)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】类和对象详解(类的使用,this指针)

    提示:这里可以添加本文要记录的大概内容: 在计算机编程领域,程序设计的方法论不断演化,从最初的面向过程到如今更为强大而灵活的面向对象。本文将深入探讨C++中关于类和对象的概念,为读者提供对面向对象编程的深刻理解。 提示:以下是本篇文章正文内容,下面

    2024年02月02日
    浏览(42)
  • 【C++技能树】类和对象的使用 --初始化列表,static,友元,内部类,匿名对象的理解与使用

    Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法…感兴趣就关注我bua! 这是一个C++的默认构造函数 虽然我们大多时候混淆初始化与赋值的概念,但在这里,构造函数体中只能成为 赋值 ,因为初始化只能初始化一次,而赋值可以赋值多次。 那么在哪里进行初始化呢

    2024年02月06日
    浏览(46)
  • 【C++】类和对象(中)---取地址及const取地址操作符重载、const成员函数的使用

    个人主页:平行线也会相交💪 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C++之路】💌 本专栏旨在记录C++的学习路线,望对大家有所帮助🙇‍ 希望我们一起努力、成长,共同进步。🍓 今天是521,先祝各位玩的开心哈!!! 前面已经更

    2024年02月08日
    浏览(50)
  • 面向对象三大特性之一——継承(上篇)

    目录 前文 一.什么是継承? 1.1 継承的定义 1.2 継承的格式 1.2.1 継承的使用格式 1.2.2 継承关系和访问限定符 二,基类和派生类对象复制转换 三,継承中的作用域 四,派生类/子类中的默认成员函数 六,継承与友元  六,継承与静态成员 总结 本篇文章主要是详解面向对象三大

    2024年02月03日
    浏览(42)
  • 【C++面向对象】--- 继承 的奥秘(上篇)

    个人主页:平行线也会相交💪 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C++之路】💌 本专栏旨在记录C++的学习路线,望对大家有所帮助🙇‍ 希望我们一起努力、成长,共同进步。🍓 C++支持面向对象 ,其中面向对象有三大特性,即

    2024年02月13日
    浏览(42)
  • Scala第六章节(类和对象的定义、访问修饰符和构造器的用法、main方法的实现形式、伴生对象的使用以及工具类的案例)

    章节目标 掌握类和对象的定义 掌握访问修饰符和构造器的用法 掌握main方法的实现形式 掌握伴生对象的使用 掌握定义工具类的案例 1. 类和对象 Scala是一种函数式的面向对象语言, 它也是支持面向对象编程思想的,也有类和对象的概念。我们依然可以基于Scala语言来开发面向

    2024年03月19日
    浏览(48)
  • 使用 Qt for Android 获取并利用手机传感器数据(上篇)开发环境省心搭建

    现代手机拥有许多传感器,包括地磁、姿态、GPS、光照、温度、气压、摄像、声音、电磁等,完全就是一个高度集成的科学仪器。不夸张的说,一部手机加上一个外围的计算机和控制系统,做一个功能较强的自主移动机器人并不是不可能。但是,很多APP都只是局限于自身的功

    2024年02月03日
    浏览(49)
  • 详解C++类&对象(上篇),带你走进C++

    目录 一,面向对象面向过程的认识(简单了解即可,逐步认识) 二, 类 2.1 类的引入  2.2 类的定义 1. struct  2. class  类的两种定义方式: 2.3 封装类的访问限定符  1. 封装概念 2. 类的访问限定符  2. 4 类的作用域 2. 5 类对象模型 1. 计算类大小 2. 类对象的存储方式 2.6  结构体

    2024年02月05日
    浏览(40)
  • 掌握C++魔法:深入解析类与对象(上篇)

    W...Y的主页 😊 代码仓库分享 💕 🍔前言:  之前我们学习了从C语言转到C++后我们需要知道的一些关键改动与变化。今天我们就要学习C++独有的类与对象。在谈论类与对象之前我们先说一下什么是面向对象的C++,什么是面向过程的C语言。 目录 面向过程和面向对象初步认识

    2024年02月08日
    浏览(38)
  • C++ 基础知识 五 ( 来看来看 面向对象的继承 上篇 )

    C++ 继承是指派生类(子类)从基类(父类)继承属性和行为的过程。我们可以创建一个新的类,该类可以继承另一个类的数据属性和方法。 在上述代码中,我们定义了一个父类 Person 与一个子类 Student。Student 类继承了 Person 类的属性和方法,包括 name、age、gender 和 eat() 函数

    2024年02月03日
    浏览(96)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包