독개

[C++] 4.10 Struct 구조체 설명

by #독개#

/*
클래스로 넘어가기 위한 모든것을 포함하고있다
코드만 보면 다 이해된다
*/

#include <iostream>

using namespace std;

struct Person
{
	double height;
	int age;
	string name;
	float weight = 80.0; //함수의 파라미터처럼 미리 기본값을 넣어주면 구조체 호출할때 초기화안하면  이거쓴다
	//c++에서 기본값 설정 매개변수는 제일오른쪽

	void print()
	{
		cout << height << " " << weight << " " << age << " " << name << endl;
	}
}; //struct뒤에도 ;들어간다 enum처럼

//함수의 리턴으로도 받아올수있다
Person getMe()
{
	Person me{ 200,55,"아부지" };
	return me;
}

//또다른 Struct안에 묶을수도있다
struct Family
{
	Person mom{ 500,500,"어머니" };
	Person brother{ 600,600,"형" };
};

int main()
{
	Person me{ 100,36,"홍길동" }; //제일끝에 weight는 비웠다 ,을 생략해도된다 c++에서는 기본값이 있는 것은 항상뒤에 위치해야한다
	/*
	예전에는
	me.height = 100;
	me.weight = 80.0;
	이런식으로 다적어줬는데 요즘엔 이렇게 안쓴다
	*/
	me.print();


	//함수의 리턴으로도 받아올수있다
	Person abc = getMe();
	abc.print();


	//또다른 Struct안에 묶을수도있다
	Family F1;
	F1.mom.print();
	F1.brother.print();

	return 0;
}

//Mystruct의 자료형의 크기는 2 + 4 + 8 byte가 나와야할것 같지만
struct MyStruct // 2 + (2) + 4 + 8 byte가 된다 sizeof로 구조체 사이즈도 볼수있다 (2)가 padding이라고한다
{
	short	id;		//2byte
	int		age;	//4byte
	double	wage;	//8byte
};

 

 

 

 


🐱‍👓독하게 개발

블로그의 정보

독한 개발자

#독개#

활동하기