건국대학교 객체지향프로그래밍_4주차_랩실습보고서
본 내용은
"
건국대학교 객체지향프로그래밍_4주차_랩실습보고서
"
의 원문 자료에서 일부 인용된 것입니다.
2023.02.22
문서 내 토픽
  • 1. 스마트 포인터를 이용한 동적 할당
    이 실습에서는 스마트 포인터를 사용하여 동적으로 메모리를 할당하고 관리하는 방법을 다룹니다. 파일에서 데이터를 읽어와 2차원 배열로 저장하고, 이를 화면에 출력하는 코드를 작성했습니다. 스마트 포인터를 사용하여 메모리 누수를 방지하고 효율적으로 메모리를 관리할 수 있습니다.
  • 2. 램프 클래스
    이 실습에서는 램프 클래스를 정의하고, 램프의 전원 켜기/끄기와 조도 변경 기능을 구현했습니다. 램프 클래스에는 전원 상태와 조도 레벨을 나타내는 멤버 변수가 있으며, 전원 켜기/끄기와 조도 변경을 위한 멤버 함수를 정의했습니다.
  • 3. 사용자 클래스와 램프 클래스의 연동
    이 실습에서는 사용자 클래스와 램프 클래스를 연동하여, 사용자가 램프의 전원을 켜고 끄며 조도를 변경할 수 있도록 구현했습니다. 사용자 클래스에는 이름을 설정하고 램프의 전원 및 조도를 제어하는 멤버 함수가 있습니다. 이를 통해 사용자와 램프 간의 상호작용을 구현할 수 있습니다.
Easy AI와 토픽 톺아보기
  • 1. 스마트 포인터를 이용한 동적 할당
    스마트 포인터는 동적 메모리 할당 및 해제를 자동으로 관리하는 C++의 강력한 기능입니다. 이를 통해 개발자는 메모리 누수 문제를 해결할 수 있으며, 코드의 안정성과 가독성을 높일 수 있습니다. 스마트 포인터는 다양한 종류가 있으며, 각각의 특성에 따라 적절한 사용 방법이 달라집니다. 예를 들어 unique_ptr은 단일 소유권을 가지며, shared_ptr은 여러 개의 소유권을 가질 수 있습니다. 이러한 특성을 잘 이해하고 상황에 맞게 사용하는 것이 중요합니다. 또한 스마트 포인터를 사용할 때는 동적 메모리 할당과 해제 시점을 명확히 파악하고, 예외 처리 등을 고려해야 합니다. 전반적으로 스마트 포인터는 C++ 개발에 있어 필수적인 기능이며, 이를 효과적으로 활용하면 안정적이고 효율적인 코드를 작성할 수 있습니다.
  • 2. 램프 클래스
    램프 클래스는 전등 객체를 표현하는 클래스로, 전등의 상태(켜짐/꺼짐), 밝기 조절 등의 기능을 제공합니다. 이 클래스는 객체 지향 프로그래밍의 핵심 개념인 캡슐화, 정보 은닉, 다형성 등을 잘 보여줄 수 있는 좋은 예시입니다. 예를 들어 램프 클래스는 전등의 상태를 나타내는 멤버 변수와 이를 제어하는 메서드를 가지고 있으며, 외부에서는 이 멤버 변수에 직접 접근할 수 없도록 정보 은닉 기법을 적용할 수 있습니다. 또한 다양한 종류의 램프(LED 램프, 백열등 등)를 표현하기 위해 상속과 다형성을 활용할 수 있습니다. 이처럼 램프 클래스는 객체 지향 프로그래밍의 핵심 개념을 이해하고 실습하는 데 유용한 예제가 될 수 있습니다.
  • 3. 사용자 클래스와 램프 클래스의 연동
    사용자 클래스와 램프 클래스의 연동은 객체 지향 프로그래밍에서 중요한 개념인 객체 간 관계 설정을 보여줄 수 있는 좋은 예시입니다. 사용자 클래스는 램프 클래스의 객체를 가지고 있으며, 이를 통해 사용자가 램프를 제어할 수 있습니다. 이러한 관계는 집합 관계(Composition)로 표현할 수 있으며, 사용자 클래스는 램프 클래스의 객체를 생성, 소멸, 제어할 수 있습니다. 또한 사용자 클래스와 램프 클래스 간의 상호작용을 통해 다양한 시나리오를 구현할 수 있습니다. 예를 들어 사용자가 램프를 켜고 끄거나, 밝기를 조절하는 등의 기능을 구현할 수 있습니다. 이러한 객체 간 관계 설정과 상호작용은 복잡한 시스템을 모델링하는 데 필수적이며, 사용자 클래스와 램프 클래스의 연동은 이를 이해하는 데 도움이 될 수 있습니다.