第十八章 17结构体与类的区别

//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;
}
*/

  

posted @ 2012-09-24 22:23  简单--生活  阅读(266)  评论(0编辑  收藏  举报
简单--生活(CSDN)