클래스를 상속받았고 업캐스팅이 되었을 때 어떤 함수를 콜 하는지 알 수 있음 하나의 이름으로 여러작업을 할 수 있는 다형성 가능 런타임 시 컴퓨터 입장에서 어? virtual 가 붙어있네? 이거 실제 객체 맞어? 맞네 어? virtual 가 붙어있네? 이거 실제 객체 맞어? 아니네 다른 놈이네 이렇게 컴파일 단계에서 어떤 함수가 실행될 지 정해지지않고 런타임 시에 정해지는 것을 동적 바인딩 class Parents { virtual void Function() { std::cout
C++ 창시자인 비야네 스트로스트룹은 C++ 에서 자원을 관리하는 방법으로 다음과 같은 디자인 패턴을 제안하였습니다. 바로 흔히 RAII 라 불리는 자원의 획득은 초기화다 - *Resource Acquisition Is Initialization* 입니다. 이는 자원 관리를 스택에 할당한 객체를 통해 수행하는 것입니다. 예외가 발생해서 함수를 빠져나가더라도, 그 함수의 스택에 정의되어 있는 모든 객체들은 빠짐없이 소멸자가 호출됩니다(이를 stack unwinding 이라 한다고 했었죠). 물론 예외가 발생하지 않는다면, 함수가 종료될 때 당연히 소멸자들이 호출되지요. 그렇다면 생각을 조금 바꿔서 만약에 이 소멸자들 안에 다 사용한 자원을 해제하는 루틴을 넣으면 어떨까요? 예를 들어서 객체를 가리키는 일반..
가상 메모리란 운영체제가 물리적 메모리를 하나의 메모리 구조로 볼 수 있도록 해주는 것 가상 메모리가 없다면 "아! 이 변수는 캐쉬 36번지에 저장해야 할 텐데" "오! 이 연산 결과는 램 1024번지에 저장해야 하겠군" 가상 메모리가 있다면 "이 연산결과는 0x01240번지에 저장이 됩니다." 여기서 16진수로 표현된 주소 값 0x1240은 당연히 가상 메모리의 주소이다. 가상 메모리를 나누는 기준 코드 영역 : 실행할 프로그램의 코드를 올려 놓을 공간 데이터 영역 : 프로그램이 종료될 때까지 유지해야 할 데이터를 저장할 공간 (전역변수, static) 스택 영역 : 아주 잠깐 사용하고 삭제할 데이터의 저장공간 (지역변수, 매개변수가 저장 됨) 힙 영역 : 프로그래머가 원하는 방식으로 쓸 수 있는 공간..
핵심 C++에서 함수의 이름은 함수의 메모리 주소 그 자체를 가리킨다. 형식 : 리턴타입(* 객체이름)(매개변수타입 매개변수이름); 함수 포인터 변수 선언의 예 int FunctionA(int arg) { return 0; } int main() { int (* pFunction)(int); pFunction = FunctionA; pFunction(5); } 함수 포인터를 매개변수로 받는 함수의 예 int FunctionA(int (*pFunction)(int)) { pFunction(N); } 함수 포인터를 리턴하는 함수의 예 int (*Function(int nNum))(void) { return AddPorc; } int main() { int (*pFunction)(void); pFunction..
핵심 pragma는 컴파일러에게 그 뒤에 오는 내용에 따라 어떤일을 하라는 전처리 명령이다. pragma once 한번 컴파일 되면 더 이상 컴파일 하지 않는다. 여러개의 cpp파일이 있을때, 하나의 cpp파일이 수정되면, 그 파일만 컴파일하고 나머지는 하지 않는다 보통 .h파일의 최상단에 한번 언급한다. pragma comment(lib, "ws2_32") 컴파일 시 ws2_32.lib 파일을 링크하라는 명령. 보통 VS같은 IDE개발환경에서는 프로젝트 속성에서 해주는 경우가 있지만, 환경이 바뀔때를 대비해서 사용 pragma pack(n) 위에서, n의 값으로 1,2,4,8 등이 올 수 있으며 특히 네트워크통신쪽을 개발할때 구조체의 맴버들을 align할때 사용하는 것이다 상세 설명 : https://..
- Total
- Today
- Yesterday
- UE5
- unrealengine
- double free
- 람다함수
- C
- coordinate system
- Trouble shooting
- c++
- 람다
- rotator
- UE4
- Lambda
- bug
- LambdaFunction
- c++11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |