C++ 윈도우 프로그래밍 기말고사
본 내용은
"
[배재대] C++ 윈도우 프로그래밍 1학기 기말고사
"
의 원문 자료에서 일부 인용된 것입니다.
2023.04.09
문서 내 토픽
-
1. 클래스 상속과 파생클래스기본클래스 Food를 상속받아 파생클래스 Melon을 작성하는 문제로, 상속의 개념과 멤버변수, 멤버함수의 정의 및 구현을 다룬다. Food 클래스는 칼로리, 가격, 중량 정보를 가지며, Melon 클래스는 추가로 경작 농원 정보를 포함한다. 생성자를 통한 객체 생성, setter/getter 함수를 이용한 데이터 관리, Print() 함수를 통한 정보 출력을 구현한다.
-
2. 접근 제어와 멤버함수 오버라이딩Point 클래스를 상속받아 ColorPoint 클래스를 작성하는 문제로, public, protected 접근 제어자의 사용을 다룬다. 기본클래스의 protected 멤버함수 Move()를 파생클래스에서 활용하고, setPoint()와 setColor() 함수로 좌표와 색상 정보를 관리한다. Print() 함수를 오버라이딩하여 색상과 좌표 정보를 함께 출력한다.
-
3. Friend 함수와 연산자 오버로딩Date 클래스에서 friend 함수 Equals()를 사용하여 두 개체의 날짜 비교 기능을 구현한다. Time 클래스에서 + 연산자를 오버로딩하여 두 시간 개체를 더하는 기능을 멤버함수로 작성한다. 이를 통해 클래스 간 비교 연산과 산술 연산의 커스터마이징을 학습한다.
-
4. 가상함수와 다형성Shape 클래스의 가상함수 getArea()를 상속받아 Oval, Rect, Tri 클래스에서 각 도형의 넓이를 계산하는 함수를 구현한다. 각 파생클래스는 자신의 도형에 맞게 getArea()를 오버라이딩하여 다형성을 구현하고, 도형의 이름과 넓이 정보를 출력한다.
-
1. 클래스 상속과 파생클래스클래스 상속은 객체지향 프로그래밍의 핵심 개념으로, 기존 클래스의 기능을 재사용하고 확장할 수 있게 해줍니다. 파생클래스는 기본클래스의 속성과 메서드를 상속받아 코드 중복을 줄이고 계층적 구조를 만들 수 있습니다. 다만 과도한 상속 깊이는 코드 복잡도를 증가시키므로 신중한 설계가 필요합니다. 단일 상속과 다중 상속의 장단점을 고려하여 적절히 활용하면 유지보수성이 높은 확장 가능한 코드를 작성할 수 있습니다.
-
2. 접근 제어와 멤버함수 오버라이딩접근 제어(public, protected, private)는 캡슐화를 통해 클래스의 내부 구현을 보호하고 인터페이스를 명확히 합니다. 멤버함수 오버라이딩은 파생클래스에서 기본클래스의 메서드를 재정의하여 다양한 동작을 구현할 수 있게 합니다. 접근 제어 수준을 적절히 설정하면 의도하지 않은 접근을 방지하고, 오버라이딩을 통해 유연한 설계가 가능합니다. 이 두 개념의 조합은 안전하고 확장 가능한 객체지향 설계의 기초입니다.
-
3. Friend 함수와 연산자 오버로딩Friend 함수는 캡슐화의 예외로 특정 함수에게 private 멤버 접근을 허용하여 특수한 상황에서 유용합니다. 다만 과도한 사용은 캡슐화를 훼손하므로 신중해야 합니다. 연산자 오버로딩은 사용자 정의 타입에 대해 직관적인 연산을 가능하게 하여 코드 가독성을 높입니다. 두 기능 모두 강력하지만 책임감 있게 사용해야 하며, 특히 연산자 오버로딩은 기존 의미를 벗어나지 않도록 주의해야 합니다.
-
4. 가상함수와 다형성가상함수는 런타임에 실제 객체의 타입에 따라 적절한 메서드를 호출하는 동적 바인딩을 가능하게 합니다. 이를 통해 다형성이 구현되어 같은 인터페이스로 다양한 동작을 수행할 수 있습니다. 가상함수는 유연하고 확장 가능한 설계를 제공하지만 약간의 성능 오버헤드가 발생합니다. 순수 가상함수를 통한 추상 클래스 설계는 계약 기반 프로그래밍을 가능하게 하여 견고한 아키텍처를 구축할 수 있습니다.
-
[배재대] 윈도우 프로그래밍 C++ 2학기 기말고사 1페이지
(1) 상자를 나타내는 Box 클래스는 다음과 같다.멤버변수:int width length height멤버함수: int GetVolume()2023.04.07· 1페이지 -
창의적 수업 설계 9페이지
“창의적 문제해결 학습을 위한 교수전략”1. 창의적 문제해결 학습의 정의 및 특성창의적 문제해결 학습이란 문제 상황을 바르게 해결 할 수 있는 능력을 기르기 위한 교수학습의 형태이다.) 이러한 창의적 문제해결 학습은아래와 같은 특징)을 갖는다.① 문제 사태가 제시되어야 한다.② 문제는 학습자가 의문, 흥미 또는 벽에 부딪치는 것이고 해결이 가능해야 한다.③ 문제는 명확하게 정의 되어야 한다.④ 학습자에게 자료 수집, 검증, 조직에 대한 암시를 주어야 한다.⑤ 다양한 방법으로 자료를 수집할 수 있어야 한다.⑥ 학습자는 가설에 따라 활...2007.12.27· 9페이지 -
mini - Pascal 언어 정의 10페이지
1. mini-Pascal언어 정의우선 lex와 yacc프로그램은 윈도우용인 Parser Generator를 이용하였다.여기서 정의하는 언어는 Pascal과 어느 정도 비슷하지만 최대한 간단한 형식으로 나타내기 위해 선언부를 따로 두지 않았고 begin키워드라든가 레코드, procedure, function, 포인터, 문자 입출력, while-do문, case문 등의 기능을 넣지 못했다.- 변수 타입 : 정수 타입만 이용하고 문자는 식별자에만 사용.- 제어문 : 선택문 if-then문과 반복문 repeat-until문을 사용.- 입...2008.10.27· 10페이지 -
정보가전이론및응용 06,07년 기말고사 6페이지
06년 기말고사1.다음 용어를 설명하라.a)APIAPI는 Application Programing Interface의 약어입니다. 응용 프로그램이 OS나 DBMS 등 프로그램의 기능을 이용할 수 있도록 한 응용 프로그래밍 인터페이스입니다. 응용 프로그램 작성자가 함수를 기술하기만 하면 함수 호출에 의해서 다양한 기능을 이용할 수 있게 됩니다. 함수는 OS, DBMS와 같은 기능을 사용하는 방법을 정의한 집합이라 보시면 됩니다.b)TCP/IPTCP/IP는 미국 국방부에서 컴퓨터 간의 통신을 위해 개발한 TCP와 IP를 조합한 통신 프...2007.07.03· 6페이지
