전체 글 (104) 썸네일형 리스트형 [TIL 24장] 순수 가상 함수 오늘의 TIL 목차 (22. 09. 06) 순수 가상 함수 순수 가상 함수 [ 순수 가상 함수 ] : 함수의 정의가 이루어지지 않고 함수만 선언한 ( 기능 X ) 자식 오버라이딩의 기능만을 목적으로 하는 함수. class 클래스명 { public: virtual 반환타입 함수명 (매개변수) = 0; // 순수 가상 함수 } - class CDainn() { virtual void Render() = 0; } class CSiwoo() : public CDainn { void Render() { cout [TIL 23장] 상속(feat. UML), 객체 포인터, 바인딩(정적 & 동적), 다형성[클래스 속성], 가상함수, 오버라이딩[다형성특징] 오늘의 TIL 목차 (22. 09. 05) 상속 (feat. 객체 포인터) 정적 바인딩 & 동적 바인딩 다형성 - 오버라이딩 상속 [ 상속 ] : 부모 클래스의 멤버 변수와 메소드(멤버 함수)를 자식 클래스가 상속 받아 재사용하는 것 class 부모클래스명 {}; class 자식 클래스명 : 접근제어지시자 부모클래스명 {}; class cDainn() {}; // 부모 class cSiwoo() : public cDainn {}; // 자식 - [ 단점 ] 코드 비대화가 늘어날 수 있음. - 코드가 늘어날수록 계층이 엄청 늘어날 것이다. mom - 여자 남자, 여자 - X Y, 이런식으로 계속 뻗어나감 - 최하단 계층은 위의 모든 함수들을 상속 받으니까 용량이 비대화될 수 있음 1. 메모리 할당 2. 부.. [TIL 22장] 동적할당(깊은 복사, 얕은 복사), 복사 생성자, extern, friend 오늘의 TIL 목차 (22.09. 02) 깊은 복사 & 얕은 복사 복사 생성자 extern friend 깊은 복사 & 얕은 복사 ( 동적할당 ) [ 동적할당 - 깊은 복사, 얕은 복사 ] : 동적할당 시 대입을 하는 과정에서 얕은 복사(reference)를 하면 문제가 발생, 깊은 복사(value)를 해야한다. void main(void) { int* a = new int(5); // 초기값 5 동적할당 int* b = new int(3); // 초기값 3 동적할당 int iA = 10, iB = 20; a = b; // 얕은 복사 (a의 주소에 b의 주소를 대입 - reference) *a = *b; // 깊은 복사 (a의 값을 b의 값으로 바꿔줌 - value) iA = iB; // 깊은 복사 (iB.. [TIL 21장] 이니셜라이저, const 멤버 변수/함수, static 멤버 변수/함수, this 오늘의 TIL 목차 (22.09. 01) 이니셜 라이저(feat. const 멤버 변수) 클래스 const 멤버 변수/함수 클래스 static 멤버 변수/함수 this 이니셜 라이저 [ 이니셜 라이저 ] : const 멤버 변수(상수)를 초기화하기 위한 문법 ( 상수 멤버 변수가 없어도 사용됨 ) 클래스명::생성자 : 변수명(초기화값) // : 변수명(초기화값)이 이니셜라이저 { } - class CDainn { private: // 이니셜 라이저를 사용하지 않으면 m_ciA는 쓰레기값이 상수화 되어버림 // 생성자 몸체는 '대입을 통한 초기화'라 쓰레기값이 상수화된 상수는 몸체 안에서 초기화 불가능(대입 X) const int m_ciA; int m_iB; public: CDainn(); ~CDainn.. [TIL 20장] string함수, explicit, 전방 선언 오늘의 TIL 목차 (22.08. 31) string 함수 explicit 전방 선언 string 함수 [ string ] : C++에 들어온 문자열 함수 ( 문자열 끝에 널( '\0' )을 포함하지 않음 ) #include // string 헤더파일 포함 생성 방법 1. string.str1("Dainn"); // string str1 = "Dainn"; 2. string str2; // 선언 ( 쓰레기값 ) str = "Dainn"; // 초기화 3. string str3(str2); // 인자값 또는 문자열 넣어 문자열 생성 가능 ■ 기능 / 주의 string 문자열은 대입 연산자를 통해 대입이 가능하다 ( char 배열은 대입 불가능, 문자열 함수 이용해야 함 ) string에 C 배열을 대입할 .. [TIL 19장] 클래스 특성 - 캡슐화, 클래스 - 생성자, 소멸자 오늘의 TIL 목차 (22.08. 30) 클래스 특성 - 캡슐화 클래스 - 생성자 클래스 - 소멸자 생성자 [ 생성자 ] : 클래스에서 자동으로 선언 및 호출되는 객체 생성과 초기화를 목적으로 한 것 클래스명(매개변수) { 몜버 변수 초기화; }; class Dainn { private: // 클래스는 멤버 변수를 private으로 해주는 게 상책 (은닉화) int m_iA; public: // 생성자는 이름이 클래스명, 매개변수에 따른 함수 오버로딩 가능 Dainn() { m_iA = 0; }; // 기본 생성자, 생성자를 명시적 선언하지 않을 경우 자동 생성되는 생성자 Dainn(int _iA) { m_iA = _iA; }; // 생성자는 '대입을 통한 초기화' } ※ 객체 생성 과정 : 1. 메모리.. [TIL 18장] OOP의 개념(+추상화), 클래스(4대 속성), 클래스 속성 - 은닉화(feat. 접근 제어 지시자), 파일 분리 (클래스 - 선언부 구현부) 오늘의 TIL 목차 (22.08. 29) OOP ( +추상화 ) 클래스-은닉화 ( feat. 접근 제어 지시자 ) 파일 분리 ( 클래스 - 선언부, 구현부) OOP ( Object Oriented Programming ) ' C++ = OOP + 제네릭 프로그래밍 ' 제네릭 프로그래밍 : 데이터 형식에 의존하지 않고 하나의 값이 다른 데이터들을 여러가지 가져 재사용성을 높인 것 (함수와 유사) [ 객체 지향 언어 ( = OOP ) ] : 객체(주어)에 중점을 둔 프로그래밍, 각 개체 간의 의사소통 방식의 설계 * OOP의 개념, 특성을 설명하시오 (나만의 언어로 정리) * OOP는 객체 지향 언어로 실세계의 객체들을 데이터와 기능의 형태로 공통된 요소를 추출하는 추상화 작업을 통해서 프로그램으로 반영하는.. [TIL 16장] 레퍼런스 오늘의 TIL 목차 (22.08. 16) 파일 입출력 파일 입출력 지원 함수 바이너리 입출력 지원 함수 파일 입출력 [ 파일 입출력 ] 이전 1 ··· 8 9 10 11 12 13 다음