C++_类和对象

2 成员函数的声明

2.1 普通成员函数形式

2.2 将成员函数以内联函数的形式进行说明

3 对象的定义和使用

3.1 对象的定义

3.2 对象中成员的访问

3.3 类成员的访问属性

3.4 类中成员的访问方式

3.5 对象赋值语句

3.6 类的作用域

类(class)是面向对象程序设计的最基本的概念,是C++最强有力的特征,是进行封装和数据隐藏的工具,它将一个数据结构与一个操作集紧密地结合起来。类对象是类的实例,用类对象模拟现实世界中的事物比用数据对象更确切。

1. 类的构成 1.1 从结构到类

结构是C的一种自定义的数据类型,它把相关联的数据元素组成一个单独的统一体。

例2.1有关日期结构的例子 #include <iostream.h> struct Date { int year; int month; int day; }; int main() { Date date1; date1.year=2003; date1.month=8; date1.day=25; cout<<date1.year<<"."<<date1.month<<"." <<date1.day<<endl; return 0; } ⭐class与struct的比较

类是C++对C中结构的扩展。

C语言中的struct是数据成员集合,而C++中的类,则是数据成员成员函数的集合。

struct是用户定义的数据类型,是一种构造数据类型。类和struct一样,也是一种用户定义的数据类型,是一种构造数据类型

C结构无法对数据进行保护和权限控制,所以结构中的数据是不安全的。C++中的类将数据和与之相关联的数据封装在一起,形成一个整体,具有良好的外部接口可以防止数据未经授权的访问,提供了模块间的独立性。

1.2 类的构成

类的成员分两部分:一部分对应数据的状态,称为数据成员,另一部分为作用于该数据状态的函数,称为成员函数

类声明的一般格式如下:

class 类名 { public: 公有数据成员; 公有成员函数; protected: 保护数据成员; 保护成员函数; private: 私有数据成员; 私有成员函数; };

3个关键字: private、protected和public,称为访问权限关键字。每个关键字下面又都可以有数据成员和成员函数。

private部分称为类的私有部分,这一部分的数据成员和成员函数称为类的私有成员。私有成员只能由本类的成员函数访问,而类外部的任何访问都是非法的。

public部分称为类的公有部分,这部分的数据成员和成员函数称为类的公有成员。公有成员可以由程序中的函数访问,它对外是完全开放的。

protected部分称为类的保护部分,这部分的数据成员和成员函数称为类的保护成员。保护成员可以由本类的成员函数访问,也可以由本类的派生类的成员函数访问,而类外的任何访问都是非法的。

注意:

(1) 类声明格式中的3个部分并非一定要全有,但至少要有其中的一个部分。

一般一个类的数据成员应该声明为私有成员,成员函数声明为公有成员。

(2) 类声明中的private、protected和public三个关键字可以按任意顺序出现任意次。但是,如果把所有的私有成员、保护成员和公有成员归类放在一起,程序将更加清晰。

(3) private处于类体中第一部分时, 关键字private可以省略

(4) 数据成员可以是任何数据类型,但不能用自动(auto)、寄存器(register)或外部(extern)进行声明。

(5) 不能在类声明中给数据成员赋值。C++规定,只有在类对象定义之后才能给数据成员赋初值

用一个类来描述日期,其形式如下:

class Date { public: void setDate(int y,int m,int d); void showDate(); private: int m_year; int m_month; int m_day; }; 2. 成员函数的声明

成员函数的声明通常采用以下两种方式:

2.1 普通成员函数形式

即在类的声明中只给出成员函数的原型,而成员函数体写在类的外部。

返回类型 成员函数 (参数列表);

类外定义的一般形式是:

返回类型 类名∷成员函数名(参数表)
{
// 函数体
}

例如, 以下是表示坐标点的类Coord的声明

class Coord { public: void setCoord (int,int); // 设置坐标点 int getx(); // 取x坐标点 int gety(); // 取y坐标点 private: int x,y; }; void Coord∷setCoord(int a,int b){ x=a; y=b;} int Coord::getx(){ return x;} int Coord::gety(){ return y;} 内联函数和外联函数

类的成员函数可以分为内联函数和外联函数。

内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。而说明在类体内,定义在类体外的成员函数叫外联函数。外联函数的函数体在类的实现部分。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzfjf.html