西工大《C++程序设计》——(五)

第25讲:类的定义

  1. C语言——面向过程的程序设计思想(自顶向下逐步求精;一个main函数外加若干子函数),C++——面向对象的程序设计思想(实现软件设计的产业化;自然界是由实体对象构成的)。
  2. 【抽象】:数据抽象、行为抽象。
  3. 【封装】:将抽象出的数据成员和行为成员聚合并视为一个整体——类(细节隐藏,接口开放)。
  4. 【继承与派生】:保持类原有特性的基础上,进行更具体的说明。
  5. 【类定义】:class 类名{成员列表};
  6. 类可以没有成员,也可以有多个成员;类的成员可以是数据,也可以是函数;类的定义一旦完成后就无法再添加成员了。
  7. 类中成员函数的声明是必需的,但定义可在类外声明。
  8. 类成员的访问有两种来源:类成员和类用户。
  9. 类成员具有访问控制属性,分三种:publicprivateprotectedpublic属性将类成员开放给类外部的用户访问(外部接口);private属性将类成员限制为仅给类内成员可访问;protected属性将类成员限制为仅给类内成员可访问,此外该类的派生类的成员亦可访问。
class 类名{
   
	public:	// 公共成员
	protected:	// 保护成员
	private:	// 私有成员
};
  1. 类成员可为类对象。
  2. 【成员函数的声明与定义】:类外定义类成员函数的话,必须将类内的成员函数声明放在类定义的前面,否则编译出错。【将类成员函数的定义实现放在类体外有利于接口和实现的分离】
  3. 【成员函数的隐式内联】:类成员函数仅在定义置于类体外,且声明与定义均无inline修饰的情况下为非内联函数。
  4. 【成员函数的重载与默认参数设置】:类成员函数的重载和默认参数的设置必须在类成员函数的第一次声明或定义的地方。
  5. 【成员函数的存储】:同一个成员函数的代码公用一段存储空间,即不重复存储副本。而且C++将类成员函数的代码存储在类对象之外的内存区域,故sizeof计算类对象的大小时只计算出类对象的数据成员的大小总和。
  6. 一个源文件中同一个类不能重复定义;类的定义通常放在头文件中,由此可保证每个使用该类的文件都以同样的方式定义类。
  7. 【前向声明】:可以只声明一个类但不定义。此时不能定义该类的对象,只能用于定义指向该类的指针和引用,或者用于以此类为形参类型或返回值类型的函数的声明。
  8. 将类实例化之前必须已经确定类的定义,否则编译出错。类的成员不能是该类本身,否则因递归定义而无法确定该类。

第26讲:对象的定义和使用

  1. 类对象一般用动态内存分配。
  2. 【类成员的访问】:对象名.成员名对象指针->成员名对象引用.成员名
  3. 类对象之间可整体赋值。
  4. 类对象、类对象指针、类对象引用可作为函数参数及函数的返回值。

第27讲:构造函数

  1. 【构造函数】:定义类的时候并未产生类实体,因此未发生类成员的初始化。但是私有或者保护成员在类体外又无法初始化,因此构造函数是必须的。构造函数在类实体化时自动地被系统调用,以此达到给类对象初始化的目的。
  2. 【定义构造函数】:C++规定构造函数的名字与类的名字相同,一般在类内声明而在类体外定义,且不能指定返回类型,形参可有可无,此外构造函数可声明为内联的。
  3. 构造函数是在创建对象时自动执行的,且只执行一次,此外还不能人为调用;构造函数一般声明为public,否则只能在类内部创建对象并初始化,这不是通常的做法;构造函数应该为每个数据成员初始化,且不应加入与初始化无关的内容;带参构造函数在初始化时传入不同的参数即可进行不同的初始化。
#include
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++程序设计课程配套课件,西北工业大学-中国大学mooc平台课程,PPT很不错。 程序设计课程是大学计算机基础教育和计算机科学与技术专业基础的核心课程,是数据结构、算法设计、数学建模、软件技术等课程的前导课程。程序设计课程的教学目标是使学生能够使用一种开发工具熟练的进行软件开发,为学生将来的创新实验、毕业设计、科学研究提供了有力的技术支持。 C++是国内外广泛使用的计算机程序设计语言。其功能强大、面向对象、数据表示丰富、代码运行效率高、可移植性好,适合编写系统软件和各类应用程序。在TIOBE排行榜上,C++语言多年来始终处于前五位。学习程序设计从C++入手,对于培养利用计算机求解现实问题的计算思维能力具有其他语言无法比拟的有点。且在完全掌握了C++语言之后,再学习其他程序设计语言就会轻车熟路了。 C是C++的子集,因此在C++的授课中,有至少一半的内容是和C语言一样的。而国内C++程序设计课程的学时普遍较少,且讲授的重点一般都放在和C重叠的那一部分。对于C++比C多出来的内容往往只介绍类、继承等基本概念,而对于重载、多态、异常处理、数据流等内容言之甚少。本课程即针对这一问题,增加了C++独有的内容的比重,不但适用于在校大学生,且适用于工作中使用C++进行软件开发的人。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值