提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
面向对象的方法
首先就要对对象进行抽象,跟C中的结构体类似,在C++中也要新建一个类型,只不过C++中的类型叫做class,在类中,可以有成员变量,和成员函数。同时在类中还对成员的访问属性做了区分,有三种属性,public,protected,private。
和C语言不同的是,在类里面可写函数。
所以在使用C++的时候:
1、要做类的抽象,成员变量和成员函数;
2、实例化:所谓实例化,就是用定义的数据类型“类”来定义变量,定义出来的变量,就叫做对象;
3、面向对象的编程,加工的过程就是在处理一个一个类;面向过程加工的是一个一个的函数;
4、最后在测试程序。
特别的,要注意类的执行过程:类的执行过程不是将类的代码一步一步执行的,而是用的时候去调用需要的部分。同时类是一个数据类型,是一个固定大小的内存块的别名,定义一个类,是一个抽象的概念,不会给实际的分配内存,只有在用数据类型定义变量的时候才会分配内存。
要考虑的是,C++是如何区分不同的对象去调用了类中的方法。
class类是1个数据类型和n个对象的关系。那么要思考的是,C++编译器是如何处理多个对象调用类的成员函数的。
一、面向过程
double r = 0;
double s = 0;
cout << "请输入圆的半径:";
cin >> r;
cout << "r的值是: " << r << endl;
s=3.14*r*r;
cout << "圆的面积是:" << s << endl;
二、面向对象
class Mycircle
{
public:
double m_r; //半径
double m_s; //面积
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()
{
Mycircle c1, c2, c3;//用类定义对象
double r1 = 0;
double r2 = 0;
cout<<"请输入第一个圆c1的半径:";
cin >> r1;
//给C1的半径赋值
c1.setR(r1);
cout << "c1的面积是:" << c1.getS() << endl;
cout<<"请输入第二个圆c2的半径:";
cin >> r2;
//给C1的半径赋值
c2.setR(r2);
cout << "c2的面积是:" << c2.getS() << endl;
system("pause");
}
总结
1、面向对象的方法,将数据和对数据的操作方法(函数),封装在一起,作为一个相互依存,不可分离的整体。
2、对同类型对象提出其公共属性,形成类。
3、类通过外部接口,与其他部分发生联系。