4点起步C++(第六集)

类与对象

3.1 类

■类是面向对象程序设计的基础和核心,也是实现数据抽象的工具。类中的数据具有隐藏性和封装性,类是实现C++许多高级特性的基础。
■类定义的语法格式:

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

示例

class Date  //类声明,类名Date
{
private:    //私有成员,类外不能够访问
    int year,month,day;       //数据成员
public:     //公有成员,类外能够访问
    void print(){//函数成员pirnt()
    cout<<year<<'-'<<month<<'-'<<day<<endl;
    }
    void set(int y,int m,int d){  //函数成员set()
    year=y; month=m;day=d;
    }
};

3.2 类的成员函数
1.在类体之外定义成员函数
■为了提高类的可读性,常常把成员函数放在类定义体之外,而类体只保留成员函数的原型声明
■在类体之外定义成员函数成为外联函数
■成员函数类外定义的语法格式:

函数类型  类名::成员函数名(形式参数表)
{
    //函数体
}

示例

class Date  //类声明,类名Date
{
private:    //私有成员,类外不能够访问
    int year,month,day;       //数据成员
public:     //公有成员,类外能够访问
    void print();  //声明函数成员print()
    void set(int y,int m,int d);//声明函数成员set()
    int  get_year(); //声明函数成员 get_year()    
};
    //类外实现函数成员print()
    void Date::print(){
        cout<<year<<'-'<<month<<'-'<<day<<endl;
    }
    //类外实现函数成员set()
    void Date::set(int y,int m,int d){
        year=y; month=m; day=d;
    }
    //类外实现函数成员get_year()
    int Date::get_year(){
        return year;
    }

例子,定义求和类

class Sum   //定义求和类
{
private:
    int s;
public:
    void setSum(int x); //函数成员类内原型声明
    void print();    //函数成员类内原型声明
};
void Sum::setSum(int x)  //函数成员类外实现
{
    s=0;
    for(int i=1; i<=x;i++) s=s+i;
}
void Sum::print()   //函数成员类外实现
{
    cout<<"1+2+3+...+x="<<s<<endl;
}
int main()
{
    Sum asum;
    asum.setSum(6);
    asum.print();
    return 0;
}

把6赋值给x运行:
在这里插入图片描述
3.3内联函数

在这里插入图片描述
内联函数定义方法:
1).在类体内定义成员函数

class A
{
    .......
    void fun()
    {
        ......
    }
    ......
};

2).在类内函数原型前使用inline关键字声明

class A
{
   ......
   inline void fun();
   ......
};
void A::fun()
{
    ......
}

3.4 对象

■由同一个类创建的各个对象具有完全相同分数据结构,但它们的数据值可能不同。
■1.对象的创建(也称为类的实体化)
格式: 类名 对象名;
■2.类成员的访问
—对于类成员的访问,如果在该类内部访问类成员,只要指出它的名字就可以直接使用。
—如果在类的外部使用类成员,则要通过类的对象来访问其公有成员。

	对象名.公有数据成员名;
	对象名.公有成员函数名(实参表)

注意:
—只有public权限的成员才能是同成员运算符“.”在类外访问。
—对象中的私有成员是类中隐藏的数据,不允许在类外的程序中被直接访问,只能通过该类的公有成员函数来访问它们。

例:创建一个圆类,计算圆的面积

#include<iostream>
using namespace std;
const double PI=3.14159;
class Circle
{
private:
    double radius;
public:
    void setRadius(double r);
    double cirArea();
};
void Circle::setRadius(double r)
{
    radius = r;
}
double Circle::cirArea()
{
    double area = 0;
    area = PI*radius*radius;
    return area;
}
int main()
{
    double s,r=3;
    Circle cir;  //定义对象cir
    cir.setRadius(r);//公有成员可以外部访问
    s=cir.cirArea();//公有成员可以外部访问
    cout<<"圆的面积="<<s<<endl;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值