c++基础 --类与对象

一、导学

--程序中的对象是现实中对象的模拟,具有属性和功能/行为;
-- 抽象出同一类对象的共同属性和行为,形成类,对象是类的实例;
-- 类将数据和处理数据的函数封装在一起,隐藏内部细节,提供对外访问接口;
-- 定义对象时,可以通过构造函数进行初始化;
-- 删除对象时,可以通过析构函数释放资源;
-- 一个类的对象可以由其他类的对象组合而成,即类的成员可以是其他类的对象;
-- 结构体、联合体和枚举类。

二、面向程序的基本特点

1.抽象:对同一类对象的共同属性和行为进行概括,形成类--数据抽象和代码抽象

--抽象示例:钟表

数据抽象: int hour,int minute,int second;

代码抽象:settime(),showtime();

class Clock {
public:
void setTime(int newH, int newM, int newS);
void showTime();
private:
int hour, minute, second;

};

2.封装:将抽象出的数据、代码封装在一起,形成类。

3.继承:在已有类的基础上,进行扩展形成新的类

4.多态:同一名称,不同功能实现方式。

三、类和对象的定义

-对象是现实世界中对象的模拟

-类是同一类对象的抽象

-定义类的对象,才可以通过对象使用类中定义的功能

1.定义类就是定义类型

--此类型的“合法值”是什么?
-- 此类型应该有什么样的函数和操作符?
-- 新类型的对象该如何被创建和销毁?
-- 如何进行对象的初始化和赋值?
-- 对象作为函数的参数如何以值传递?
--谁将使用此类型的对象成员?

2.类定义的语法形式

class    类名称
{
public:
                公有成员(外部接口)
private:
                私有成员
protected:
                保护型成员
}
--可以为数据成员提供一个类内初始值

private:
int hour = 0, minute = 0, second = 0;//若外部没有进行初始化,则用类内初始化
3.类成员的访问成员

(1)公有类型成员:在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。

(2)私有类型成员:在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问; 如果紧跟在类名

称的后面声明私有成员,则关键字private可以省略。

(3)保护类型成员:与private类似,其差别表现在继承与派生时对派生类的影响不同,详见第七章。

4.对象定义的语法: 类名 对象名;

5.类成员的访问权限:

--类中成员互相访问;

--类外访问:使用“对象名.成员名”方式访问 public 属性的成员
6.类的成员函数
-- 在类中说明函数原型;
-- 可以在类外给出函数体实现,并在函数名前使用类名加以限定;
-- 也可以直接在类中给出函数体,形成内联成员函数;
-- 允许声明重载函数和带默认参数值的函数。
内联成员函数
-- 为了提高运行时的效率,对于较简单的函数可以声明为内联形式。
-- 内联函数体中不要有复杂结构(如循环语句和switch语句)。
-- 在类中声明内联成员函数的方式:
-- 将函数体放在类的声明中。
-- 使用inline关键字。

7.类和对象程序举例

(1)类定义

#include<iostream>
using namespace std;
class Clock{
public:
void setTime(int newH = 0, int newM = 0, int newS = 0);
void showTime();

private:
int hour, minute, second;
}

(2)成员函数的实现

void Clock::setTime(int newH, int newM, int newS) {
 hour = newH;
 minute = newM;
 second = newS;
}
void Clock::showTime() {
 cout << hour << ":" << minute << ":" << second;
}

(3)对象的使用

int main() {
Clock myClock;
myClock.setTime(8, 30, 30);
myClock.showTime();
return 0;
}

四、复制构造函数

1.定义

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值