Major Study/Object Oriented Programming

Major Study/Object Oriented Programming

연산자 오버로딩 / 상속 / 다형성 구현 프로젝트 해결 과정

0. 과제 설명 아래는 프로젝트 기능의 주요 키워드이며, 각각의 키워드마다 해결해야하는 과제, 모르겠는 부분을 적어놓았다. 1. Virtual (다형성) 상속 관계에서 play()함수에 virtual을 사용해 객체마다 다른 출력문이 나오도록 static 변수 count가 LegalDVD가 생성될 때 DVD도 거쳐서, count++ 코드가 두 번 실행되었다. 그래서 만들어진 객체의 개수보다 더 많아지는 것을 알 수 있었고, count 의 증가는 가장 상위 클래스에 한번만 해주면 되는 것이었다. 2. 연산자 오버로딩 ** (1) ostream 오버로딩 (2) = 오버로딩 (3) + 오버로딩 오버로딩 시 delete 과정에서 Dangling Pointer 관련한 에러가 나올 수 있다. 3. 클래스 상속 UML..

Major Study/Object Oriented Programming

객체지향 프로그래밍2 상속, 연산자 오버로딩, 다형성, 템플릿 관련 의문점 정리 및 해결

템플릿 1. const와 주솟값 관련된 문제 bool Push( const T &pushValue) { // &T 자료형에 대한 const if (!isFull()) { stackPtr[++top] = pushValue return true; } cout Maybe Yes? 생성자 소멸자 매개변수 문제 해결 1. 생성자의 매개변수에 문자열을 넣었을 때 char * 자료형을 가지고 있는 멤버 변수의 값 초기화 시키기 + strcpy 관련 에러 해결 소스코드이다. #pragma once #ifndef CREATE_H #define CREATE_H class CreateAndDestroy { public: CreateAndDestroy(int, char *); // 생성자 ~CreateAndDestroy();..

Major Study/Object Oriented Programming

C++ template 내용 정리(열혈 C++, 강의노트, 기타 자료 참고)

template이란? 일반 자료형을 여러 자루의 색연필에 비유하자면, template는 하나의 펜에 내장된 여러개의 색상을 의미한다. 즉, 하나의 template변수로 여러 자료형을 사용할 수 있는 것이다. https://blockdmask.tistory.com/43 [C++] template(템플릿) 에 관하여 1 (템플릿이란, 함수 템플릿) 안녕하세요 BlockDMask 입니다. 오늘은 C++에서 자료형을 마음대로 가지고 놀 수 있는, template (템플릿) 에 대해 알아보겠습니다. 1) 템플릿(Template) 이란. 함수나 클래스를 개별적으로 다시 작성하지 blockdmask.tistory.com 참고한 사이트 함수 템플릿 int sum(int a, int b){ return a + b; } ..

Major Study/Object Oriented Programming

객체지향 프로그래밍2 기말고사 대비 문제 wirte-up

1. Explain Polymorphism, and how to implement it. 다형성이란, 상속 계층 구조에서 다양한 객체들에 대해 마치 객체들이 기반 클래스의 객체인 것처럼 처리하는 것을 말한다.( 이때 각 객체는 자신에게 적합한 작업을 수행하며, 기존의 코드를 수정하지 않고 새로운 클래스를 추가할 수 있는 효율적인 방법이다. ) 2. Explain the difference between pure virtual and virtual. 순수 가상함수와 가상함수의 차이점을 설명해보자. 순수 가상함수는 상속 계층 구조 관계에서 기본 클래스의 멤버 함수를 파생 클래스에서 사용하고자 할 때, 기본 클래스에서 멤버 함수를 구현하는 것이 무의미할 때 사용된다. 1) 순수 가상함수는 파생 클래스에서 Ov..

Major Study/Object Oriented Programming

객체지향 프로그래밍 프로젝트 (상속과 다형성, 가상함수) 해결 과정 / 가상 함수, 다형성 개념 정리

driver 파일 코드 설계는 다음과 같이 했다. #include using namespace std; #include #include "Shape.h" int main() { vector handle; // 핸들이 될 기본 클래스 포인터 자료형의 벡터 생성 handle[0] = new Circle; // 원 handle[1] = new Square; // 사각형 handle[2] = new Sphere; // 구면체 handle[3] = new Cube; // 정육면체 for (int i = 0; i < 4; i++) // handle 내의 도형을 처리하는 루프 { /* * if(handle[i]의 객체가 TwoDimesionalShape클래스의 파생 클래스 객체이면) cout

Major Study/Object Oriented Programming

2021 객체지향 프로그래밍 중간고사 대비

#pragma once 왜 있느냐? - 소스 코드를 컴파일 할 때 해당 header file을 한번만 compiler에 포함할 것을 명시. this 포인터에 대해 설명하라 - this 포인터란, 클래스나 구조체, union타입의 멤버 함수(static하지 않음) 안에서 접근할 수 있는 포인터이다. 멤버 함수가 호출되는 객체를 가르킨다. (의문점, this포인터를 사용하면 멤버 함수의 정의에서 매개변수에 그 멤버 함수를 사용하고 접근하고 있는 객체의 이름을 표시할 수는 없을까? 단순히 멤버 변수의 값만 출력할 수 있는 것인가?) 생성자에서 default인자에 대해 설명하라 - default인자란, 생성자 호출 시 인수 값이 제공되지 않을 경우, 컴파일러에서 자동으로 값을 할당하도록 함수 선언에 제공된 값이..

MINGYUM
'Major Study/Object Oriented Programming' 카테고리의 글 목록