C++ 类和对象(第四章)

本文介绍了面向对象编程中的基本概念,包括类的定义、对象的创建、成员函数、访问控制和内联函数。通过钟表类的例子展示了如何设计和使用类,强调了类作为类型的设计思路和成员的访问权限。同时,探讨了对象的初始化、成员函数的实现以及内联函数在提高效率方面的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

类和对象的定义

设计类就是设计类型

类定义的语法形式

类内初始值

类成员的访问控制

对象定义的语法

类成员的访问权限

类的成员函数

内联成员函数

例4-1 钟表类


类和对象的定义

l  对象是现实中的对象在程序中的模拟。

l  类是同一类对象的抽象,对象时类的某一特定实体。

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

设计类就是设计类型

l  此类型的“合法值”是什么?

l  此类型应该有什么样的函数和操作符?

l  新类型的对象该如何被创建和销毁?

l  如何进行对象的初始化和赋值?

l  对象作为函数的参数如何以值传递?

l  谁将使用此类型的对象成员?

类定义的语法形式

class 类名称

{

   public:

                     公有成员(外部接口)

   private:

                      私有成员

   protected:

                      保护型成员

};

 

类内初始值

l  可以为数据成员提供一个类内初始值

l  在创建对象时,类内初始值用于初始化数据成员

l  没有初始值的成员将被默认初始化。

l  类内初始值举例

class Clock {

public:

   void setTime(int newH, int newM, int newS);

   void showTime();

private:

   int hour = 0, minute = 0, second = 0;

};

 

类成员的访问控制

l  公有类型成员

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

l  私有类型成员

n  在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。

n  如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。

l  保护类型成员

n  与private类似,其差别表现在继承与派生时对派生类的影响不同,详见第七章。

对象定义的语法

l  类名  对象名;

l  例:

Clock  myClock;

类成员的访问权限

l  类中成员互相访问

n  直接使用成员名访问

l  类外访问

n  使用“对象名.成员名”方式访问 public 属性的成员

类的成员函数

l  在类中说明函数原型;

l  可以在类外给出函数体实现,并在函数名前使用类名加以限定;

l  也可以直接在类中给出函数体,形成内联成员函数;

l  允许声明重载函数和带默认参数值的函数。

内联成员函数

l  为了提高运行时的效率,对于较简单的函数可以声明为内联形式。

l  内联函数体中不要有复杂结构(如循环语句和switch语句)。

l  在类中声明内联成员函数的方式:

n  将函数体放在类的声明中。

n  使用inline关键字。

类和对象程序举例

例4-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;

};

成员函数的实现

void Clock::setTime(int newH, int newM, int newS) {

   hour = newH;

   minute = newM;

   second = newS;

}

void Clock::showTime() {

   cout << hour << ":" << minute << ":" << second;

}

对象的使用

int main() {

     Clock myClock;

     myClock.setTime(8, 30, 30);

     myClock.showTime();

     return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值