C++에서는 헤더파일이 선언이 아닌, 표준 헤더파일의 선언에서는 확장자를 생략하기로 약속함
ex. #include <iostream>
변수의 선언은 어디서나 가능하다.
함수 오버로딩
- 매개변수의 선언 형태가 다르다면 동일한 이름의 함수 정의를 허용한다.
* C는 함수의 이름으로, C++ 에서는 함수의 이름과 매개변수로 호출할 함수를 찾는다. 따라서 C는 함수 오버로딩이 불가능하다.
* 반환형이 다르다고 오버로딩 할 수는 없다.
메크로함수 : 전처리기에서 함수의 몸체부분이 함수의 호출부분을 완전히 대체했을 때
- 인라인함수도 마찬가지.
차이점) 메크로는 자료형에 의존적이지 않음 ->템플릿으로 쓰면 되지롱~
:: 범위지정 연산자. SCOPE RESOLUTION OPERATOR
전역변수와 지역변수의 이름이 같은 경우, 전역변수는 지역변수에 의해 가려진다.
int val = 100; //전역변수
int SimpleFunction(void)
{
int val = 20; //지역변수
val+=3; //지역변수 val + 3
::val += 7; //전역변수 val + 7
}
const int num 10;
&num 안의 값이 안바뀐다.
const int& ptr1 : ptr1의 주소가 가리키는 값이 안바뀐다
int* const ptr : ptr의 주소값이 바뀌지 않는다. 다른 값을 가리킬 수 없다
const int* const ptr : 주소값도 값도 바뀌지 않는다.
데이터 스택 힙
함수는 호출된 순서가 스택에 쌓이고
지역변수는 데이터..? 전역변수는 힙
근데 malloc 으로 할당해주면 힙에 공간을 할당해서 메모리가 해제해주기 전에는 날라가지 않는다ㅓ.
값에 의한 호출 : 값을 복사해서 매개변수 넘겨줌
레퍼런스에 의한 호출 : 주소값을 직접 매개변수로 넘겨줌.
https://all-young.tistory.com/17
C/C++ 모던) LValue RValue 임시객체 개념파악하기
학생들이 간간히 LValue RValue에 대해서 물어볼 때가 있습니다. 그때마다 기본적으로 C++11 이전과 그 이후로 해서 설명할 필요가 생겼기 때문에 이렇게 정리한 글을 올립니다. 프로그래밍을 공부하
assortrock.com
메모리의 구조 (코드, 데이터, 힙, 스택 영역)
목차 메모리 코드(code) 영역 데이터(data) 영역 힙(heap) 영역 스택(stack) 영역 오버 플로우 메모리 위 그림과 같이, 프로그램이 실행되기 위해서는 운영체제(OS)가 프로그램의 정보를 메모리에 로드
all-young.tistory.com
'책' 카테고리의 다른 글
게임프로그래밍패턴 2장 - 명령 (0) | 2023.01.17 |
---|---|
좋아하는 블로그 모음 (0) | 2022.11.06 |