상속 (Inheritance) 클래스를 다른 클래스에 물려주는 것 C++에서 상속은 객체 지향 프로그래밍(OOP)의 중요한 개념 중 하나이며, 그 개념은 크게 어렵지는 않다. 상속은 기존 클래스(부모 클래스 또는 기본 클래스)의 특성과 동작을 새로운 클래스(자식 클래스 또는 파생 클래스)에게 물려주는 메커니즘을 제공한다. 이를 통해 코드의 재사용성을 높이고 계층적인 구조를 형성하여 프로그램의 구성을 용이하게 만들 수 있다. 상속이 일어나면 접근 제어자에 따라 부모 클래스의 멤버들을 자식 클래스가 참조할 수 있게되고, 자식 클래스는 자신만의 멤버를 더 선언할 수 있다. 또한, 자식 클래스는 부모 클래스의 파생된 클래스가되어 자식 클래스가 부모 클래스에 포함되는 관계를 형성한다. 혹은 자식 클래스는 부모 클..
상수형 메서드 const 키워드를 통해 상수를 만드는 방법은 간단하다. int a와 같은 변수 선언 앞에 const를 붙이면 a 값이 상수로 선언되며 초기 값을 그대로 유지하고 다른 값을 새로 대입할 수 없게한다. (volatile 키워드나 직접 메모리 주소에 접근하여 변경할 수도 있긴하다.) 상수 매개변수 이런 const 키워드는 일반 메서드, 클래스 멤버 메서드, 생성자의 매개변수에 키워드로도 붙일 수도 있다. 이렇게하면 const 값으로 지정된 매개변수는 읽기 전용으로 선언되어 변경이 되지 않아야할 매개변수를 수정하는 실수를 하지 않게된다. const 매개변수 #include using namespace std; void processData(const int data) { data = 10; //..
정적 멤버 지역 변수는 스코프 안에서 생성되고 스코프가 종료되면 해제된다. 멤버 변수의 경우 클래스 객체(인스턴스)가 생성될 때 메모리에 할당되고 해당 객체가 소멸할 때 같이 제거된다. 이말은 즉슨, 지역 변수나 멤버 변수로는 스코프나 객체 사이에 공용 변수나 공용 함수를 사용하기 위해 고정으로 메모리에 할당되어있는 객체가 필요하다는 말이다. class A { public: int X; void y() {) }; int main() { A a, b; ) 위와 같이 A라는 클래스의 인스턴스 a, b가 존재하면 둘 객체가 가진 x라는 변수는 전혀 다른 메모리에 할당되어있는 완벽히 다른 변수가 된다. 즉, 멤버 변수는 한 객체에 소속되어 각 다른 객체의 변수에 접근이 불가능하다는 것이다. 정적 멤버 메서드 정..
깊은 복사와 얕은 복사 모든 프로세스에서 복사는 수없이 일어난다.(항상 그렇다는건 아니지만...) 예전 단원에서는 복사와 이동의 차이를 언급한 적이 있다. 더보기 복사는 실제 값의 복사본을 생성하여 다른 변수에 할당하고 이동은 실제 값을 다른 변수에 이동시키고 원본 변수는 제거되거나 변형되는 것이다. 복사는 특정 변수가 가진 실제값을 다른 변수에게도 전달해주는 것을 의미한다. C++에서 복사의 의미는 메모리 관리와 객체 간의 상호 작용을 다루는 데 중요하고 효율적인 복사는 메모리 관리와 프로그램의 성능에 영향을 미칠 수 있다. 이에 우리는 깊은 복사와 얕은 복사라는 개념을 공부해보려 한다. 얕은 복사 (Shallow copy) 얕은 복사는 쉽게 말하자면 두 개 이상의 포인터 변수가 동일한 값의 주소를 가..
- Total
- Today
- Yesterday
- 스레드
- 메모리
- 알고리즘
- 크기
- 멀티스레드
- CPU
- 초기화
- static_cast
- 컴파일
- 백준
- dynamic_cast
- malloc
- c++
- 할당
- 구조
- 수학
- 함수
- 프로세스
- thread
- 게임수학
- 포인터
- 명령어
- 운영체제
- const
- 인터럽트
- 입출력
- 상속
- 레지스터
- New
- 클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |