본문 바로가기

C++73

Chapter 05. 템플릿과 파일 시스템 5.1 템플릿 프로그래밍 5.1-1 템플릿이란, Note) 너무 많은 add() 함수 구현 코드 만약 우리가 모든 primitive type에 대응하는 add() 함수를 만든다고 해보자. 그럼 아래와 같은 코드가 쏟아져 나옴. 이를 좀 더 간편하게 하기 위해서 나온 기능이 템플릿. char add(char op1, char op2); int add(int op1, int op2); float add(float op1, float op2); ... Def) 템플릿(Template) 사용자가 템플릿 매개 변수에 대해 제공하는 인자를 기반으로 컴파일 타임에 클래스 또는 함수 코드를 생성하는 구문. Note) 어떻게보면 복붙과 비슷함. ex. 인라인 함수, 매크로 함수, ... 클래스와도 비슷함. 청사진을 만들.. 2022. 5. 7.
Chapter 04. 캐스팅과 인라인 4.1 캐스팅 4.1-1 캐스팅이란, Def) 캐스팅(Casting) 형변환. 자료형 A에서 자료형 B로 변환하는 것을 의미. Def) 암시적 캐스팅(Implicit Casting) 컴파일러가 자료형을 자동으로 변환해주는 것. 단, 형변환이 허용되고 프로그래머가 명시적으로 형변환을 안할 경우에만 해당됨. ex. int num1 = 3; long num2 = num1; // 암시적 캐스팅 Def) 명시적 캐스팅(Explicit Casting) 프로그래머가 자료형 변환을 위한 코드를 직접 작성한 것. C++에는 4가지 명시적 캐스팅이 존재함. 이를 C++ 스타일 캐스팅이라고 함. - static_cast - reinterpret_cast - const_cast - dynamic_cast 4.1-2 C 스타일.. 2022. 5. 6.
Chapter 03. 상속과 다형성 3.1 상속 3.1-1 상속이란, Def) 상속(Inheritance) 다른 클래스의 멤버와 메서드를 물려받는 것을 의미함. 물려주는 다른 클래스를 부모 클래스 혹은 베이스 클래스라 하고 물려받는 본인 클래스를 자식 클래스, 파생 클래스라 함. Note) 상속 관계를 다른 말로 is-a 관계라고도 함. ex. Cat is a Animal. / Dog is a Animal. 다만 Animal is a Cat은 아닐 수 있음. 3.1-2 자식 클래스 Note) 자식 클래스 정의 방법 class 자식클래스명 : 접근제어자 부모클래스명 {}; class Cat : public Animal { ... }; class KiaMorning : public Car { ... }; class AndroidPhone : .. 2022. 5. 5.
Chapter 02. 클래스 2.1 클래스란, 2.1-1 클래스란, Note) 클래스의 아이디어를 C 기초문법 포스팅에서 다룸. 어떤 개체의 "정의"를 뜻함. DNA 같은 것. Note) 구조체와 클래스의 차이 기본 접근 제어자가 다름. 구조체는 public, 클래스는 private. Note) 컴퓨터는 구조체와 클래스를 구분할 수 있을까? 구분할 수 없음. 심지어 구조체 조차도 그저 변수가 여러 개 있는 것. Ex02010101) // MyVector.h #pragma once class MyVector // 클래스명은 항상 대문자로 시작. { int mX; // 변수명은 멤버를 뜻하는 m으로 시작. int mY; }; // MyVector.cpp #include "MyVector.h" // main.cpp #include #in.. 2022. 5. 1.