C++基础 —— 一个简单的C++代码及面向过程和面向对象思想求圆的面积
从hello world 开始,第一个C++代码。
#include “iostream”//包含C++的头文件。输入输出流 using namespace std; //使用命名空间 std 标准的命名空间(在这个命名空间中定义了很多标准定义) void main() { //cout 标准输出 黑屏幕 //<< 左移操作符 在C++里面 功能的改造(增强)===>C++ 语言操作符重载 //endl \n //打印到屏幕 并且换行 cout << “hello world …”<<endl; system(“pause”); }
C是面向过程的语言,C++是面向对象的语言
下面分别用面向过程思想(C)和面向对象的方法(C++)求一个圆的面积。
面向过程加工的是一个一个的函数,面向对象加工的是一个一个的类。
数据处理:
输入半径 r;
计算周长 = 2*π*r
计算面积 = π*r*r
输出半径,周长,面积;
#include "iostream" using namespace std; //面向过程的方法 int main(void) { 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 类的抽象 成员变量和成员函数
//2 实例化 类的对象
//3 求面积
//面向过程加工的是一个一个的函数
//面向对象加工的是一个一个的类。
//4 main 集成测试
//思考:类的调用 执行过程分析==>类代码不是一步一步执行的
//类是一个数据类型,(固定大小内存块的别名);
//定义一个类,是一个抽象的概念,不会给你分配内存
//用数据类型定义变量的时候,才会分配内存
对象其实就是用类定义的变量
#include "iostream" using namespace std;
//在C++中 定义了一个自定义数据类型
struct Circle
{
double m_s; //圆的面积
double m_r; //圆的半径
}
//类的抽象 成员变量 成员函数 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; } }; //用面向对象的方法 //1 类的抽象 成员变量和成员函数 //2 实例化 类的对象 //3 求面积 //面向过程加工的是一个一个的函数 //面向对象加工的是一个一个的类。 //4 main 集成测试 //思考:类的调用 执行过程分析==>类代码不是一步一步执行的 //类是一个数据类型,(固定大小内存块的别名); //定义一个类,是一个抽象的概念,不会给你分配内存 //用数据类型定义变量的时候,才会分配内存 void main02(void) { MyCicle c1; //用类 定义 变量 --- 对象 double r; cout << "请输入c1圆形的半径:"; cin >> r; //给c1圆形的属性赋值 c1.SetR(r); cout << "c1圆形的面积是:" << c1.getS()<<endl; system("pause"); } void main(void) { MyCicle c1, c2; //用类 定义 变量 --- 对象 double r1, r2; //圆形1 cout << "请输入c1圆形的半径r1:"; cin >> r1; //给c1圆形的属性赋值 c1.SetR(r1); cout << "c1圆形的面积是:" << c1.getS()<<endl; //圆形2 cout << "请输入c2圆形的半径r2:"; cin >> r2; //给c2圆形的属性赋值 c2.SetR(r2); cout << "c2圆形的面积是:" << c2.getS()<<endl; system("pause"); }
从内存四区的角度看上面的代码为:
首先通过类型circle 定义变量double r;double pi;double area;C++编译器会分配内存;
r没有值,是个乱码,pi = 3.14,area = pi * r * r = pi*乱码*乱码
然后输入r的值,并把r赋值为相应的值,假如是10;
最后执行cout<<c1.area<<endl; 打印area的值。但是,C++编译器不会主动去调用area = pi * r * r ;
只是直接从变量所表示的内存空间中拿值,并没有执行 pi * r * r,所以是一个随机值。
所以要想执行area = pi * r * r ;必须写一个成员函数。
#include <iostream> using namespace std; //C++的命名空间 class circle { public: double r; double pi = 3.14; double area = pi*r*r; double gets() { area = pi*r*r; return area; } }; int main(void) { circle pi; cout <<"请输入area"<<endl; cin >> pi.r; cout << pi.gets() <<endl; //执行函数调用,就执行了pi*r*r system("pause"); }
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并,获取更多隐藏干货,QQ交流群:859800032 微信公众号:Crystal软件学堂
作者:Liu_Jing bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |