0. 과제 설명 아래는 프로젝트 기능의 주요 키워드이며, 각각의 키워드마다 해결해야하는 과제, 모르겠는 부분을 적어놓았다. 1. Virtual (다형성) 상속 관계에서 play()함수에 virtual을 사용해 객체마다 다른 출력문이 나오도록 static 변수 count가 LegalDVD가 생성될 때 DVD도 거쳐서, count++ 코드가 두 번 실행되었다. 그래서 만들어진 객체의 개수보다 더 많아지는 것을 알 수 있었고, count 의 증가는 가장 상위 클래스에 한번만 해주면 되는 것이었다. 2. 연산자 오버로딩 ** (1) ostream 오버로딩 (2) = 오버로딩 (3) + 오버로딩 오버로딩 시 delete 과정에서 Dangling Pointer 관련한 에러가 나올 수 있다. 3. 클래스 상속 UML..
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; } ..
1. Explain Polymorphism, and how to implement it. 다형성이란, 상속 계층 구조에서 다양한 객체들에 대해 마치 객체들이 기반 클래스의 객체인 것처럼 처리하는 것을 말한다.( 이때 각 객체는 자신에게 적합한 작업을 수행하며, 기존의 코드를 수정하지 않고 새로운 클래스를 추가할 수 있는 효율적인 방법이다. ) 2. Explain the difference between pure virtual and virtual. 순수 가상함수와 가상함수의 차이점을 설명해보자. 순수 가상함수는 상속 계층 구조 관계에서 기본 클래스의 멤버 함수를 파생 클래스에서 사용하고자 할 때, 기본 클래스에서 멤버 함수를 구현하는 것이 무의미할 때 사용된다. 1) 순수 가상함수는 파생 클래스에서 Ov..
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
#pragma once 왜 있느냐? - 소스 코드를 컴파일 할 때 해당 header file을 한번만 compiler에 포함할 것을 명시. this 포인터에 대해 설명하라 - this 포인터란, 클래스나 구조체, union타입의 멤버 함수(static하지 않음) 안에서 접근할 수 있는 포인터이다. 멤버 함수가 호출되는 객체를 가르킨다. (의문점, this포인터를 사용하면 멤버 함수의 정의에서 매개변수에 그 멤버 함수를 사용하고 접근하고 있는 객체의 이름을 표시할 수는 없을까? 단순히 멤버 변수의 값만 출력할 수 있는 것인가?) 생성자에서 default인자에 대해 설명하라 - default인자란, 생성자 호출 시 인수 값이 제공되지 않을 경우, 컴파일러에서 자동으로 값을 할당하도록 함수 선언에 제공된 값이..