<구조체> C++ 에서의 구조체 (struct)

2021. 6. 19. 05:07Programming Language/C++

1. struct 변수의 선언

2. struct 안에 함수 삽입

3. struct 안에 enum 상수 선언

4. struct 안 함수를 외부로 빼기

 

 


1. struct 변수의 선언

 

C 언어에서는 struct 변수를 다음과 같이 선언하지만,

 

int main(void)
{
	struct Student leeSangHoon;
	struct Student langHoonly;

	return 0;
}    

 

C++에서는 struct 키워드를 생략하고 다음과 같이 변수를 선언할 수 있다.

 

int main(void)
{
	Student leeSangHoon;
	Student sangHoonly = {"대구 출생", 28};
    
    return 0;
}

 

 

 


2. struct 안에 함수 삽입

 

C++ 에서는 struct 안에 함수를 삽입할 수 있다.

struct Student
{
    char name[NAME_LEN];
    int grade;
    int age;

    void Greet()
    {
    	std::cout << "안녕하세요!" << std::endl;
    }
};

 

그리고, 다음과 같이 실행이 가능하다.

 

Student sangHoonly = {"이상훈", 4, 28};
sangHoonly.Greet();

// 출력 : "안녕하세요!"

 

 


3. struct 안에 enum 상수의 선언

 

struct 안에는 enum 상수 또한 포함시킬 수 있다.

 

struct Student
{
	enum {
    	NAME_LEN   = 10;
        MAX_CLASS  = 4;
        MAX_AGE    = 100;
    };
    
    char name[NAME_LEN];
    int grade;
    int age;
    
    void Greet() {...};
    void Study() {...};
};
   

 

 


 

4. struct 안 함수를 외부로 빼기

 

 

모든 코드 작업에서도 마찬가지겠지만, struct 또한 가독성이 좋아야 한다. 즉 코드 분석 시, struct 내부 함수는 그 기능에 중점을 두지, 세부 구현에는 크게 신경쓰지 않는다. 따라서, struct 내에서 정의된 함수가 많거나 함수의 길이가 길면, struct 밖에 빼낼 필요가 있다.

 

struct Student
{
	.....
    void Study();
    void Greet();
    .....
};


void Student::Study()
{
	.....
}


inline void Student::Greet() // 함수를 인라인으로 처리. 원래 구조체 안에서는 함수가 인라인 처리됨.
{
	.....
}