반응형

C++ 14

[C++] 42SEOUL CPP04 개념 공부하기

(42Seoul의 CPP04 과제를 진행하며 공부한 내용을 작성한 TIL을 정리한 글 입니다.)개념 공부📓가상 함수가상함수는 ‘virtual’ 키워드를 사용하여 선언한 함수를 의미가상 함수 테이블은 대체로 아래 순서로 구현됨‘virtual’ 키워드를 사용하여 가상 함수 선언클래스에 대한 가상 함수 테이블을 생성함. 가상 함수 테이블은 가상 함수들에 대한 포인터들의 배열객체에 가상 함수 테이블 포인터를 추가하여, 해당 클래스의 가상함수 테이블을 가리키게 함가상함수 호출 시, 해당 클래스의 가상 함수 테이블 포인터를 따라가 적절한 가상 함수를 찾아 호출가상 소멸자클래스 상속 시, 해당 클래스의 소멸자도 가상 소멸자로 선언해야 함가상 소멸자로 선언하지 않으면, 해당 클래스를 동적으로 할당하고 삭제 시, 메모..

C++ 2023.07.28

[C++] 42SEOUL CPP03 개념 공부하기

(42Seoul의 CPP03 과제를 진행하며 공부한 내용을 작성한 TIL을 정리한 글 입니다.)개념 공부📓클래스 상속기존 클래스의 특성과 기능을 새로운 클래스가 물려받는 것상속을 통해 기존 클래스의 멤버 변수와 멤버 함수를 그대로 사용하거나, 새로운 멤버 변수와 멤버 함수를 추가하여 새롭게 정의할 수 있음상속을 통해 만들어진 새로운 클래스를 ‘파생 클래스’ 또는 ‘하위 클래스’ 라고 하며, 기존 클래스는 ‘기본 클래스’ 또는 ‘상위 클래스’ 라고 함클래스 상속 방법class BaseClass { // 기본 클래스의 멤버 변수와 멤버 함수 선언}class DerivedClass : access-specifier BaseClass { // 파생 클래스의 멤버 변수와 멤버 함수 선언}BaseClass : 기..

C++ 2023.07.28

[C++] 42SEOUL CPP02 개념 공부하기

(42Seoul의 CPP02 과제를 진행하며 공부한 내용을 작성한 TIL을 정리한 글 입니다.) 개념 공부📓 Orthodox Canonical Form OCCF 란, 클래스의 기본적인 형식 또는 일반적인 형식을 따르는 규칙 집합 이 규칙들은 클래스의 일관성과 호환성을 유지하고, 예기치 않은 동작을 방지하는데 도움을 줌 C++ 98 버전의 OCCF 는 아래 규칙을 포함함 기본 생성자(Default Constructor) 복사 생성자(Copy Constructor) 소멸자(Destructor) 대입 연산자(Assignment Operator) 동등 연산자(Equality Operator) 복사 할당 연산자(Copy Assignment Operator) ostream 연산자(’’) 오버로딩 42 과제에서는 위..

C++ 2023.07.28

[C++] 42SEOUL CPP01 개념, 함수 공부하기

(42Seoul의 CPP01 과제를 진행하며 공부한 내용을 작성한 TIL을 정리한 글 입니다.) 함수 공부📓 new 포인터 변수명 = new 타입; //int *ptr = new int; 포인터 변수명{new 타입}; //int *ptr{new int}; //초기화 같이 하는 방법 포인터 변수명 = new 타입(초기화 값); //int *ptr = new int(10); 포인터 변수명{new 타입}; //int *ptr{new int(10)}; 메모리 공간 할당하는 연산자이며, 생성자를 호출하고, 할당하고자 하는 자료형에 맞게 형 변환 new 는 바로 초기화가 가능함 메모리 할당 실패 시, malloc 과는 다르게 bad_alloc 이라는 익셉션을 리턴함. try - catch 문을 사용해서 확인해야 한..

C++ 2023.07.28

[TIL] 20230708

오늘 공부한 내용📓 - C++ 개념 공부 고정소수점 정수를 표현하는 비트 수와 소수를 표현하는 비트 수를 미리 정해두고, 해당 비트만 사용하여 숫자를 표현하는 방식 한정된 비트에 정수와 소수를 표현해야하기 때문에, 나타낼 수 있는 범위가 한정적인 문제 아래 처럼 32비트를 쪼개 실수를 표현 [ 1 ][ 15 ][ 16 ] [sign][integer part][fractional part] 처음 1 비트는 sign(부호) 이며, 양수는 0 음수는 1 다음 15 비트를 integer(정수부) 다음 15 비트를 fractional(소수부) 정수부에 정수값을 2진수로 바꾸어 넣고, 소수부에 소수값을 2진수로 바꾸어 넣은 후, 남은 자리는 0으로 채움 부동소수점 소수점의 위치를 고정하지 않고, 그 위치를 나타내는..

TIL::Today I Learn 2023.07.18

[TIL] 20230707

오늘 공부한 내용📓 - C++ 개념 공부 Orthodox Canonical Form OCCF 란, 클래스의 기본적인 형식 또는 일반적인 형식을 따르는 규칙 집합 이 규칙들은 클래스의 일관성과 호환성을 유지하고, 예기치 않은 동작을 방지하는데 도움을 줌 C++ 98 버전의 OCCF 는 아래 규칙을 포함함 기본 생성자(Default Constructor) 복사 생성자(Copy Constructor) 소멸자(Destructor) 대입 연산자(Assignment Operator) 동등 연산자(Equality Operator) 복사 할당 연산자(Copy Assignment Operator) ostream 연산자(’’) 오버로딩 42 과제에서는 위 규칙들 중 기본 생성자, 복사 생성자, 복사 할당 연산자, 소멸자만..

TIL::Today I Learn 2023.07.08

[TIL] 20230705

오늘 공부한 내용📓 - C++ 개념 공부 if/else 문 사용하지 않고 분기 처리하기 ex05 문제에서 if/else 문을 사용하지 않고 분기하여, 멤버 함수 포인터 배열을 통해 함수를 실행 시켜야 한다. if/else 문을 사용하지 말라는 점이, 분기가 엄청 많아질 경우에는 if/else 문은 관리가 힘드니 사용하지 말라는 것으로 이해하여, 대안인 switch 문은 사용하지 않고 코드를 짜보려고 한다. complain 함수의 인자로 level이 들어오면, 그 level 에 맞는 함수를 실행시켜야 하기 때문에, levels 배열을 만들어 find 로 level 을 찾고, 그 인덱스를 사용하여 멤버 함수 포인터 배열에서 함수를 실행시킨다. void Harl::complain(std::string leve..

TIL::Today I Learn 2023.07.06

[TIL] 20230704

오늘 공부한 내용📓 - C++ 개념 공부 함수 포인터와 멤버 함수 포인터 함수 포인터 함수의 주소를 저장하고 호출하는 포인터 int add (int a, int b) { return a + b; } int subtract (int a, int b) { return a - b; } int main() { int (*funcPtr)(int, int); //함수 포인터 선언 funcPtr = add; // add 함수를 가리키도록 초기화 int result = funcPtr(5, 3); //함수 포인터를 통한 함수 호출 std::cout

TIL::Today I Learn 2023.07.06
반응형