一、用面向过程的方法求解圆形的面积
void main02()
{
double r = 0;
double s = 0;
cout<<"请输入圆形的半径:";
//cin 标准输入 代表键盘
cin >> r;
cout<<"r的值是:" << r <<endl;
s = 3.14*r*r;
cout<<"圆形的面积是s:" <<s << endl;
system("pause");
}
二、用面向对象的方法求解圆形的面积
1、在C++中 定义了一个自定义数据类型
数据类型和类相似
struct Circle01
{
double m_s; //圆的面积
double m_r; //圆的半径
};
2、在C++中 定义了一个自定义数据类型 MyCicle 圆形
//类的抽象 成员变量和成员函数
class MyCicle
{
public:
double m_s; //圆的面积 属性 成员变量
double m_r; //圆的半径
public:
void setR(double r) //成员函数
{
m_r = r;
}
double getR() //成员函数
{
return m_r;
}
double getS()
{
m_s = 3.14*m_r*m_r;
return m_s;
}
};
//实例化 类的对象
void main()
{
MyCicle c1, c2, c3; //用类定义变量,就是类的对象
double r1, r2, r3;
cout << "请输入c1圆形的半径:";
cin >> r;
//圆形1
cout << "请输入c1圆形的半径r1:";
cin >> r1;
//给c1圆形的属性赋值
c1.setR(r1);
cout << "c1圆形的面积是:" << c1.getS()<<endl;
//圆形2
cout << "请输入c2圆形的半径r2:";
cin >> r2;
//给c1圆形的属性赋值
c2.setR(r2);
cout << "c2圆形的面积是:" << c2.getS()<<endl;
system("pause");
}
3、类的调用过程分析
1、类代码不是一步一步指向,而是通过对象;
2、类是一个数据类型(固定大小内存块的别名);
3、定义一个类,是一个抽象的概念,不会分配内存,只有在用数据类型定义变量的时候,才会分配内存。
三、面向过程和面向对象两者的区别
面向过程加工的是一个一个的函数;
面向对象加工的是一个一个的类。
四、思考:
c++编译器是如何处理 多个对象,调用类的成员函数的;具体一点:如何区分是c1、c2还是c3 调用了getS呢?