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