很多对象都调用这个方法 c++编译器如何区分c1 对象 c2对象 还是c3 对象调用了类的方法
#include"iostream"//包含c++文件
using namespace std;//使用命名空间 std标准的命名空间(在这个命名空间定义了很多标准定义)
//
//void main01()
//{
// //printf("hello");
// //cout标准输出 黑屏幕 << endl:\n
// cout << "hello...." << endl;
// system("pause");
// }
//求圆的面积
//输入 :圆的半径,周长,面积
//数据处理 输入半径: r 计算周巡航 2*3.14*r 计算面积:3.14*r*r
//面向过程 结构化
void main02()
{
double r = 0;
double s = 0;
cout << "enter r";
cin >> r;
cout << "r " << r << endl;
s = 3.14 * r * r;
cout << "s" << s << endl;
system("pause");
}
//面向对象
//抽象: 求圆的面积或者 周长 定义一个圆数据类型 用结构体
//struct Circle
//{
// double m_s;//圆的面积
// double m_r;//圆的半径
//};
//定义一个圆数据类型
class MyCircle //用class关键字定义类
{
public:
double m_s;//圆的面积 属性/成员变量
double m_r;//圆的半径
public:
void setR(double r) //成员函数
{
m_r = r;//把r赋值给成员变量
}
double getR() //成员函数
{
return m_r;//把r赋值给成员变量
}
double getS()
{
m_s = 3.14 * m_r * m_r;
return m_s;
}
};
//面向对象的方法
//1.类的抽象 成员变量和成员函数
//2.实例化 用这个类型定义变量
//3.怎么用:用类的对象 c1.函数
//求面积 面向过程加工的是一个一个的函数
//面向对象加工的是一个一个的类 要求面积对类进行扩展
//思考:类的执行过程 ==>类的代码不是一步一步执行的
//类是一个数据类型 (是一个抽象概念 固定大小内存块的别名
//数据类型定义变量时才会分配内存
//c++ 编译器如何出 是c1 c2 c3 调用了函数
int main()
{
MyCircle c1, c2, c3;//实例化 用这个类(对象)类型定义变量 c1是类的对象 c2 也是类的对象 c3 也是类的对象
double r;
cout << "enter c1: r:";
cin >> r;
//给c1圆型属性赋值
c1.setR(r);
cout << "c1的面积是:" << c1.getS() << endl; // 使用对象调用方法//getS函数出来的是数据 可以直接根据输入输出流 流出来
system("pause");
return 0;
//注意是c1.getS 而不是直接的cout <<"c1的面积是:" << getS()<<endl;
}