类是面向对象程序设计实现信息封装的基础,是一种用户自定义类型。
一.类
1.类的定义:类是对具有相同属性和行为的一组对象的抽象与统一描述。属性以数据表示,称为类的数据成员。行为通过函数实现,称为成员函数。
c++类定义的格式:
class 类名 { public: 公有数据成员和成员函数; protected: 保护数据成员和成员函数; private: 私有数据成员和成员函数; }; //分号不能省略; 各成员函数的具体实现;
类成员访问控制表:
public:声明公有成员。是类的外部接口,在类中和类外可见。
protected: 声明保护成员。在类和它的派生类中可见。
private: 声明私有成员。只能在类中可见,不能在类外或派生类中使用。
扫描二维码关注公众号,回复:
37499 查看本文章
2.成员函数
简单的成员函数的实现可以在类中定义,复杂的或者一般将成员函数声明为函数原型,在类外具体实现成员函数。
成员函数在类外定义:
返回值类型 类名::成员函数名(参数表) //作用域区分符有两个冒号构成,它用于标识属于什么类的成员; { 函数体 }
成员函数的作用:
- 操作数据成员,包括访问和修改数据成员
- 用于协同不同的对象操作,称为传递消息。成员函数通过参数与其他对象协同操作。
3.对象:
对象是某个类的能动实体,是类的实例或实体。说明一个类的对象后,编译器为每个对象的数据成员分配内存。对象没有成员函数的副本,类成员函数可以被对象调用。
对象的定义格式如下:
类名 对象名1,对象名2,…,对象名n;
注意:必须在定义了类之后,才可以定义类的对象。
4.类成员的访问:
使用对象包括访问对象的数据成员和调用成员函数。
对象成员的访问包括:
- 圆点访问形式:对象名.公有成员
- 指针访问形式:"->" 对象指针变量名->公有成员
二.内联函数
1.内联函数作用:减少频繁调用小子程序的运行的时间开销、
2.内联函数声明:inline 函数原型
注意:
内联函数仅在函数原型作一次声明。适用于只有1~5行的小函数,不能含有while和switch等复杂的结构控制语句,不能递归调用。.关键字 inline 必须与函数定义体放在一起才能使函数成为内联,仅将 inline 放在函数声明前面不起任何作用。
inline void Foo(int x, int y); // inline 仅与函数声明放在一起,不能成为内联函数;
inline int Coord::getx() { return x;} // inline 与函数定义体放在一起,可以成为内联函数;
三:成员函数可以重载
Ø
函数重载:函数名相同,但参数不相同(类型不同,或者个数不同)的一组函数。
Ø
编译器根据不同参数的类型和个数产生调用匹配
Ø
函数重载用于处理不同数据类型的类似任务
eg:
(1)参数个数相同但类型不同
#include<iostream> using namespace std ; int abs ( int a ) ; double abs ( double f ) ; int main () { cout << abs ( -5 ) << endl ; cout << abs ( -7.8 ) << endl ; } int abs ( int a ) { return a < 0 ? -a : a ; } double abs ( double f ) { return f < 0 ? -f : f ; }
(2)参数个数不同
#include<iostream> using namespace std ; int max ( int a , int b ) ; int max ( int a , int b, int c ) ; int main () { cout << max ( 5, 3 ) << endl ; cout << max (4, 8, 2 ) << endl ; } int max ( int a , int b ) { return a > b ? a : b ; } int max ( int a , int b, int c ) { int t ; t = max ( a , b ) ; return max ( t , c ) ; }