零基础学C++之进阶篇三
零基础学C++之进阶篇三
类和对象
类是对象的实现,面向对象中的类是抽象概念,而类是程序开始过程中定义一个对象,用类定义对象可以是现实生活中的真实对象,也可以是从现实生活中抽象的对象。
c++类
类概述
面向对象的对象需要通过定义类来声明,类是一个新的数据类型,它和结构体有些相似,是由不同数据类型组合的集合体,但类要比结构体增加了操作数据的行为,这个行为就是函数。
类的声明与定义
类的声明格式如下:
class 类名标识符
{
[public:]
[数据成员的声明]
[成员函数的声明]
[private:]
[数据成员的声明]
[成员函数的声明]
[protected:]
[数据成员的声明]
[成员函数的声明]
};
类的声明格式说明如下:
- class是定义类结构体的关键字,大括号内被称为类体或类空间;
- 类名标识符指定的就是类名,类名就是一个新的数据类型,通过类名可以声明对象;
- 类的成员有函数和数据两种类型;
- 大括号内是定义和声明类成员的地方,关键字public、private、protected是类成员访问的修饰符。
类中的数据成员的类型可以是任意的,包含整型、浮点型、字符型、数组、指针和引用等,也可以是对象,另一个类的对象可以作为该类的成员,但是自身类的对象不可以作为该类的成员,而自身类的指针或引用又可以作为该类的成员。
class CPerson
{
int m_index;
char m_name[25];
short m_age;
double m_salary;
short getAge();
int setAge(short age);
int getIndex();
int setIndex(int index);
char* getName();
int setName(char age[25]);
double getSalary();
int setSalary(double salary);
}
类的实现
第一种方法:将类的成员函数都定义在类体内。
第二种方法:将类体内的成员函数的实现放在类体外,但如果类成员定义在类体外,需要用到域运算符“::”,放在类体内和类体外的效果是一样的。
对象的声明
定义一个新类后,就可以通过类名来声明一个对象,声明的形式如下:
类名 对象名表;
对象声明之后需要引用其成员,c++提供了两种引用方式:
(1)成员引用方式
对象名.成员名;
对象名.成员函数(参数列表);
(2)对象指针方式
对象指针名->数据成员
*(对象指针名).数据成员
对象指针名->成员函数(参数列表)
*(对象指针名).成员函数(参数列表)
构造函数
构造函数概述
在类的实例进入其作用域时,也就是建立一个对象,构造函数就会被调用,进行一些初始化工作,例如对数据成员进行赋、设置类的属性等,构造函数可以带有参数。
实例01 构造函数的使用
#include <iostream>
using namespace std;
class Cperson
{
public:
Cperson();
Cperson(int index,short age,double salary);
int m_index;
short m_age;
double m_salary;
int getIndex();
};
Cperson::Cperson()
{
m_index=0;
m_age=10;
m_salary=1000