//17结构体与类的区别
//我们知道结构体是C时代的产物,到了C++之后结构体有了很大的变化,可以增加函数,可以设置成员的公有,私有和保护属性,可以从别的类继承,也可以被别的类继承,可以有虚函数据
//唯一与类不同之处的地方是,结构体的成员默认是public,而类的成员默认是private.
/*
#include <iostream>
#include <string>
using namespace std;
//由于结构体的这种默认公有属性,我们一般用来保存多个数据类型,比如说
//我们要保存一个人的姓名,性别,年龄,身高和体重
struct A
{
//public:
int get(){ return x;}
void set(int i){ x=i;}
private:
int x;
};
struct people
{
people(int t_age, double t_weight, double t_tall, string t_name, string t_native, bool t_sex);
int age;
double weight;
double tall;
//char*name;
//char*native;
string name;
string native;
bool sex;
};
people::people(int t_age, double t_weight, double t_tall, string t_name, string t_native, bool t_sex)
{
age = t_age;
weight = t_weight;
tall = t_tall;
name = t_name;
native = t_native;
sex = t_sex;
}
void checkSex(bool s)
{
if(s == 1)
cout<<"男"<<endl;
else
cout<<"女"<<endl;
}
int main()
{
//A a;
//a.set(11);
//cout<<a.get()<<endl;
//people Jack; //people数据类型的变量Jack
//Jack.weight = 150;
//cout<<Jack.weight<<endl;
//people Jack = { 34,179.3, 185.5, "xiangling","中国",1};
//用构造函数进行结构体的初始化,在VC6.0以前的版本需要这样才能在struct中使用string类型
people Jack(34,179.3, 185.5, "xiangling","中国",1);
cout<<"姓名:"<<Jack.name<<endl;
cout<<"年龄:"<<Jack.age<<endl;
cout<<Jack.native<<endl;
checkSex(Jack.sex);
cout<<Jack.tall<<endl;
cout<<Jack.weight<<endl;
//在这个程序中,我们使用了构造函数对string型字符串进行赋值,由于调用的是构造函数
//所以jack后面没有加赋值运算符(=),并且用小括号替代了大括号
return 0;
}
*/