对于很多初学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;
}
#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;
}
这段代码运行结果如下图:
不能发现有构造函数和没有构造函数答案是不一样的,为什么没有构造函数的答案会是一个乱码?
画个图来理解一下。