C++の構造体

1448 ワード

こうぞうたい
1、概要:
構造体にとって、C言語には存在し、それはクラスの原型と言える.クラスはこの由来に由来していると言える.構造体とクラスは最も一般的な2つの違いがある.1つはキーワードが異なり、2つ目の構造体ではデフォルトのアクセス属性はpublicであり、クラスのデフォルトアクセス属性はprivateである.
2、特徴
a).C++では、構造体変数を定義する場合、キーワードstructを省略することができる(構造体変数を定義する場合、構造体キーワードstructを省略することができる).
b).一方、C言語では構造体が定義ており、構造体によって構造体変数が定義場合、キーワードstructを省略することはできない.
c).また、C++の構造体では関数を定義することもできますが、C言語ではできません.
3、フォーマットの定義
struct構造体名
{
//連体メンバー、メンバー変数でもメンバー関数でもいいですよ
};//“;”このセミコロンは捨ててはいけませんよ、覚えておいてください
4、例コード:
struct Person
{
public:
	char sName[60];
	int nAge;
	void show()
	{
		cout<<"  : "<<sName<<"   : "<<nAge<<"  ,       !"<<endl;
	}


}; //;   


void StructFun2()
{
	struct Person px = {"  ",30}; //c type
	px.show();


	Person pp = {"weikangc",26}; //c++ type
	pp.show();
}


void StructFun()
{
	struct Student
	{
		char Name[32];
		int  Age;
		
		void SetName(char* chName)
		{
			memset(Name,0,32);
			strcpy(Name,chName);
		}
		
		void SetAge(int nAge)
		{
			Age = nAge;
		}
		
		void ShowInfo()
		{
			cout<<"Name :"<<Name<<" Age: "<<Age<<endl;
		}
	};
	
	struct Student stu = {"weikangc",26};		//C    
	Student stu2 = {"weikangc",27};				//C++    .
	
	
	stu.ShowInfo();
	stu2.ShowInfo();
	
	stu.SetName("guoxiaoheng");
	stu.SetAge(25);
	stu.ShowInfo();
}