
업캐스팅 (Upcasting) 업캐스팅은 자식 클래스 타입에 대한 참조(포인터 혹은 레퍼런스)를 부모 타입으로 형변환하는 것이다. 부모클래스 *b = new 자식클래스; 위 코드는 분명 다른 자료형임에도 어떠한 오류가 발생하지 않는다. 이는 자식 클래스에서 부모 클래스 객체에 할당될때 묵시적 형변환이 일어나기 때문이다. (실제로 모든 업캐스팅은 묵시적으로 일어날 수 있다.) 이는 포인터뿐만 아니라 좌변이 부모 클래스 레퍼런스 변수일 때도 일어난다. 이는 Call-By-Reference에도 발생한다. 자식클래스 d; 부모클래스 &p = d; void f(부모클래스 &b) { // ... } int main() { 자식클래스 d; f(d); ) 하지만 포인터나 레퍼런스를 사용하지 않고 객체 자체끼리 대입하려..

상속 (Inheritance) 클래스를 다른 클래스에 물려주는 것 C++에서 상속은 객체 지향 프로그래밍(OOP)의 중요한 개념 중 하나이며, 그 개념은 크게 어렵지는 않다. 상속은 기존 클래스(부모 클래스 또는 기본 클래스)의 특성과 동작을 새로운 클래스(자식 클래스 또는 파생 클래스)에게 물려주는 메커니즘을 제공한다. 이를 통해 코드의 재사용성을 높이고 계층적인 구조를 형성하여 프로그램의 구성을 용이하게 만들 수 있다. 상속이 일어나면 접근 제어자에 따라 부모 클래스의 멤버들을 자식 클래스가 참조할 수 있게되고, 자식 클래스는 자신만의 멤버를 더 선언할 수 있다. 또한, 자식 클래스는 부모 클래스의 파생된 클래스가되어 자식 클래스가 부모 클래스에 포함되는 관계를 형성한다. 혹은 자식 클래스는 부모 클..
클래스 객체 지향의 시작 이번에는 클래스와 객체라는 개념을 알아보자. 클래스란 무엇인가? 클래스란 실체가 없고 정보만 담고 있는 코드 "정보만 담고 있다."라는 말이 무엇일까. 프로그래밍을 하다보면, 구조체 혹은 리스트, 배열과 같은 자료구조까지 특정 정보들을 모으는 컨테이너들을 접해보았을 것이다. 클래스도 개념은 크게 다르지 않다. 클래스는 멤버변수, 다형성, 정적 멤버 등 다양한 정보를 선언 및 저장할 수 있고 함수, 접근 제어, 상속, 생성자, 소멸자와 같은 기능을 제공할 수도 있다. 그런데 어디서 많이 들어본 이야기이지 않은가? 바로 구조체와 굉장히 유사한 점이 많다는 것이다. 구조체와 클래스 우선 구조체와 클래스를 비교해보자. (추가로 메모리 할당량까지☆) C++ 구조체 C++ 클래스 기본 접근..
- Total
- Today
- Yesterday
- 포인터
- 초기화
- 할당
- 알고리즘
- 상속
- 함수
- 크기
- 명령어
- 레지스터
- 스레드
- 운영체제
- const
- thread
- 멀티스레드
- 클래스
- 프로세스
- CPU
- static_cast
- 메모리
- 구조
- dynamic_cast
- 백준
- 입출력
- 게임수학
- New
- 컴파일
- 수학
- malloc
- c++
- 인터럽트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |