C++中为什么要用成员函数?

对于很多初学c++的人来说,不知道为什么一定要用成员函数,这里我就详细的介绍一下。

有如下代码

#include <iostream>
using namespace std;
class Circle{
public:
double r ;
double PI = 3.1415;
double area = r*r*PI;
};
int main(){
Circle c1;
cout << "请输入半径r:" << endl;
cin >> c1.r;
cout << c1.area << endl;//乱码
return 0;
}

大家不妨猜测或者写一下这个代码,看看结果是什么?

本人在VS2013运行结果如下图:

PS:如果是在VS2010上运行编译不会通过

第二个代码:
#include "iostream"
#define PI 3.1415926
using namespace std;
class Cricle{
public:
double m_r;
double m_s;
public:
void setR(double r){
m_r = r;
}
double getR()
{
return m_r;
}
double getS()
{
m_s = m_r*m_r*PI;
return m_s;
}
};
int main()
{
double r1;
Cricle c1;
cout << "请输入圆的半径" << endl;
cin >> r1;
c1.setR(r1);
cout << "圆的面积为:" << c1.getS() << endl;
return 0;
}

这段代码运行结果如下图:

不能发现有构造函数和没有构造函数答案是不一样的,为什么没有构造函数的答案会是一个乱码?

画个图来理解一下。

当给r赋值并不会影响area的值,所以没有成员函数和有成员函数的相差很大。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值