C++类与对象基础篇

在C++中类与对象是最重要的一章,今天我们来学习类与对象。

目录

1.类

1.1 类的结构

1.2 类的定义

2.对象

2.1 创建对象

2.2 访问对象成员

3. 应用实例


1.类

1.1 类的结构

1.1.1 类使用关键词class进行定义,四要素:类名、数据成员、函数成员、成员访问限定符

1.1.2 成员访问限定符有三种分别是私有成员(private)

                                                        只能由类中的函数访问,不可在类外进行访问。

                                                        公有成员(public)

                                                        可被该类的其他成员函数及类外的其他函数访问。

                                                        保护成员(protected)
1.1.3成员函数的定义方式有两种:1、直接在类的内部进行定义

                                                       2、在类的内部进行函数的声明,在类的外部进行函数的定义

1.2 类的定义

        在面向对象程序设计中,要想在程序中创建对象,就必须先定义对象的所属类。类是对象的抽象,是一种自定义数据类型,类是用于描述一组对象的共同特征和行为,例如兔子,老虎,鹰作为对象,它们就是属于动物类的,动物就是它们共同的特征。

        在类中,我们可以定义数据成员和成员函数,数据成员用来描述对象特征,成员函数用来描述对象行为。数据成员被称为属性,成员函数被称为方法。例如对象是一辆车,数据成员就相当与是这辆车有几个轮子,几个座位等,成员函数就是指这辆车怎么行驶的,怎么停靠的。

1.2.1 类的定义形式如下:

class 类名                                             注意:1、class是定义类关键字;

{                                                                       2、class后的类名首字母要大写且类名要与class要

        成员访问限定符:                                            用空白字符分隔;

        数据成员;                                                 3、要在“}”后面加上“;”表示类定义的结束。

       成员访问限定符:

        成员函数;

};

例:

class Car            //定义类Car
{
public:              //public访问限定符
    void drive();    //开车方法
    void stop();     //停车方法
private:             //private访问限定符
    int m_nWheels;   //车轮数量
    int m_nSeats;    //座位数量
};

 上述代码定义了一个简单的汽车类。其中,Car是类名,m_nWheels、m_nSeats是数据成员,有私有成员private的属性,drive()和stop()是成员函数,描述开车和停车的方法,有公有成员public的属性。

接下来我们将完善以上定义的汽车类。

1.2.2 通过1.1.3我们知道成员函数定义的两种方法

1、类内声明,类内定义;2、类内声明,类外定义。

例一:

class Car            
{
public:              
    void drive()
    {
        cout<<"检查车辆外部安全状况"<<endl;
        cout<<"点火"<<endl;
        cout<<"挂一档、松手刹、慢抬离合、加油、出发"<<endl;
    }
    void stop()
    {
        cout<<"到达位置后、拉紧手刹、停火"<<endl;
    }     
private:             
    int m_nWheels;   
    int m_nSeats;    
};

例二:(在类外定义的成员函数,必须在函数名前加上类名,类名后加加作用域限定符“::”)

class Car            
{
public:              
    void drive();
    void stop();  
private:             
    int m_nWheels;   
    int m_nSeats;    
};
void Car::drive()
{
    cout<<"检查车辆外部安全状况"<<endl;
    cout<<"点火"<<endl;
    cout<<"挂一档、松手刹、慢抬离合、加油、出发"<<endl;
}
void Car::stop()
{
    cout<<"到达位置后、拉紧手刹、停火"<<endl;
}  

2.对象

通过阅读上述类的定义,我们对对象的含义也有大致的了解,简单的说int a;,a就是int类型的对象。

2.1 创建对象

C++中提供了很多种创建对象的方法,最简单的方法就是给出类型及变量名:类名对象列表;

定义int类型变量:int a;

创建Car类对象:Car mycar;

创建类与int型变量的定义过程类似,创建类对象就要给其分配空间,存储对象的成员。

2.2 访问对象成员

创建对象的目的是访问成员,操作对象的属性及方法,访问对象成员的语法格式如下:

        对象名 . 数据成员名

        对象名 . 成员函数名

访问格式中,“.” 称为成员运算符,C++中访问成员的方式都是通过 “.” 运算符完成的。

例:

Car mycar;
mycar.drive();     //mycar对象访问成员函数

访问成员函数的方法与函数调用形式类似,只是需要使用对象名通过成员运算符访问该函数,若要通过类的对象mycar访问成员函数,可以通过以下代码实现

#include<iostream>
#include<string>
using namespace std;
class Car            
{
public:              
    void drive();
    void stop();  
private:             
    int m_nWheels;   
    int m_nSeats;    
};
void Car::drive()
{
    cout<<"检查车辆外部安全状况"<<endl;
    cout<<"点火"<<endl;
    cout<<"挂一档、松手刹、慢抬离合、加油、出发"<<endl;
}
void Car::stop()
{
    cout<<"到达位置后、拉紧手刹、停火"<<endl;
} 
int main()
{
	Car car;
	Car mycar;
	mycar.drive();
	mycar.stop();
	system("pause");
	return 0;
 } 

运行结果:

检查车辆外部安全状况
点火
挂一档、松手刹、慢抬离合、加油、出发
到达位置后、拉紧手刹、停火
请按任意键继续. . .

3. 应用实例

以圆为例,计算圆的周长和面积。

#include<iostream>
#include<string>
using namespace std;
const double PI=3.14159;
class Circle 
{
	public:
		void Rad(double r);
		double Circumference();
		double Area();
	private:
		double radius;
};
//类的实现
void Circle::Rad(double r)
{
	radius=r;
}
double Circle::Circumference()
{
	return 2*PI*radius;
}
double Circle::Area()
{
	return PI*radius*radius;
}
//调用对象的成员函数是Circle对象获取周长和面积的方法 
int main()
{
	Circle circle;
	circle.Rad(4.0);
	cout<<"圆的周长为:"<<circle.Circumference()<<endl;
	cout<<"圆的面积为:"<<circle.Area()<<endl;
	return 0;
}

以上就是类与对象基础篇的全部内容了,欢迎大家补充,如有错误还请指正。

我们下周见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值