一、结构的演化
1、结构发生质的演变
1.1 函数与数据共存
C++允许结构中可以定义函数,这些函数称为成员函数,下面是一个简单的示例:
#include <iostream>
using namespace std;
struct Points{
double x,y;//数据成员
void setXY(double a,double b){//成员函数,用来设置数据成员
x = a;
y = b;
}
void displayXY(){//成员函数,用来按指定格式输出数据成员的值
cout << "成员函数输出成员的值:" << x << "\t" << y << endl;
}
};
int main(){
Points p;//定义对象p
p.setXY(10.5,12.6);//设置对象p的数据成员
p.displayXY();//显示p的数据成员
cout << "直接使用数据成员,成员的值为:" << p.x << "\t" << p.y << endl;//这被称作结构Points的公有性质
/**
* 成员函数输出成员的值:10.5 12.6
* 直接使用数据成员,成员的值为:10.5 12.6
*/
return 0;
}
1.2 封装性
没有使用private定义的成员,默认为public,而私有的数据成员只有通过公有的成员函数才能使用,这就称为数据的封装性
private: double t,w;//私有的数据成员
2、使用构造函数初始化结构的对象
#include <iostream>
using namespace std;
struct Points{
private:
double x,y;//数据成员
public:
Points(){};//无参的构造函数
Points(double a,double b){//两个有参的构造函数
x = a;
y = b;
};
void setXY(double a,double b){