C++

5-1 구조체

리버윤 2023. 10. 11. 12:48
728x90
C++의 기본 소스
#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

 

구조체
  • C - struct
#include <iostream>
struct Man {
    int age; //멤버
    double weight;
};  //세미콜론 꼭 써주어야 함
int main()
{
    struct Man kang, kim;  //.cpp에서는 앞에 struct 생략 가능
    kang.age = 21;
    kang.weight = 50.2;

    std::cout << kang.age << "  " << kang.weight;
}

 

 

  • C와 C++ 구조체의 차이점
#include <iostream>
struct Man {
    int age; //멤버
    double weight;
    int getAge() { return age; } //멤버함수 
    void setAge(int a) { age = a; }
};
int main()
{
    struct Man kang, kim;
    kang.age = 21;
    kang.weight = 50.2;

    std::cout << kang.age << "  " << kang.weight;
}

 C언어의 구초체는 변수만 가능한데 C++은 구조체 안 변수 뿐만아니라 함수도 넣을 수 있다.

 

 * 구조체 멤버 접근할 때

,  일반 변수는 멤버를 "."으로 접근하지만(minsu.age = 13)

   구조체 포인터 변수일 경우 구조체_포인터_변수->멤버명; 이렇게 화살표를 사용하는 경우가 있다. (minjung->age = 7)

#include <iostream>
struct Man {
    int age; //멤버
    double weight;
    int getAge() { return age; } //멤버함수 
    void setAge(int a) { age = a; }
};
int main()
{
    struct Man kang, *kim;

    kim->age = 12;  //포인터 변수이기 때문에 -> 사용함
    std::cout << kim->age;

    kang.age = 21;
    kang.weight = 50.2;

    std::cout << kang.age << "  " << kang.weight;
}

 

구조체 변수의 초기화
#include <iostream>
struct Man {
    int age; //멤버
    double weight;
};
int main()
{
    struct Man kang = {20, 48.5}; //초기값
    std::cout << kang.age << "  " << kang.weight << std::endl;

    kang.age = 21;
    kang.weight = 50.2;
    std::cout << kang.age << "  " << kang.weight << std::endl;
}

 

구조체 변수의 대입
#include <iostream>
struct Man {
    int age; //멤버
    double weight;
};
int main()
{
    struct Man kang = { 20, 48.5 }, kang1;
    kang1 = kang;  //대입하면 멤버들이 모두 복사된다.
    std::cout << kang1.age << "  " << kang1.weight << std::endl;
    std::cout << kang.age << "  " << kang.weight << std::endl;

    kang.age = 21;
    kang.weight = 50.2;
    std::cout << kang.age << "  " << kang.weight << std::endl;
}

 

 

728x90