상수형 메서드 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) 얕은 복사는 쉽게 말하자면 두 개 이상의 포인터 변수가 동일한 값의 주소를 가..
동적 할당 동적 할당은 프로그램 실행 중에 메모리를 할당하고 해제하는 것을 말한다. 이는 정적 할당과 대조되는데, 정적 할당은 컴파일 타임에 메모리가 할당되고 해제되는 것을 의미합니다. C/C++는 동적 할당을 주로 malloc, calloc, realloc, free함수나 new, delete 연산자를 사용하여 할당한다. 다른 언어에서도 유사한 메커니즘이 존재한다. [동적할당 방법] 정적 할당 정적 할당은 선언된 변수들의 메모리 크기를 컴파일 시간에 예측하며 사용에 있어 편리하다. 하지만 편리한 만큼 편의성을 제공해주는 기능들이 이미 규칙으로 통제되기 때문에 유연한 사용은 어려운 법이다. 동적 할당 동적 할당은 사용자 = 개발자가 언제, 얼만큼 새로운 값을 메모리에 할당할 것이고 언제 제거할 것인지 지..
- Total
- Today
- Yesterday
- 운영체제
- 인터럽트
- 알고리즘
- static_cast
- malloc
- 크기
- 포인터
- 명령어
- CPU
- 상속
- 초기화
- 스레드
- 메모리
- New
- 프로세스
- dynamic_cast
- c++
- 클래스
- 할당
- 컴파일
- 멀티스레드
- thread
- 게임수학
- 백준
- 수학
- 구조
- 입출력
- 함수
- const
- 레지스터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |