목록cpp (43)
Nagie's DevStory
//C++ 함수 오버로딩의 예시 #include void print(int value) { std::cout
//char 타입 배열로 문자열 입력받기 char strA[100]; std::cin >> strA; std::cout strA; std::cout
#include int main() { int nArr[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (const int& element : nArr) { std::cout
C++ 11에서 새로 등장한 문법 중 'r-value 참조'라는 문법이 있다. 이 문법을 이해하기 전 l-value와 r-value가 무엇인지 알고 넘어가는 게 중요할 거 같다. l-value는 메모리 주소를 가지는 식별자(변수)로 수정할 수 있는 데이터를 나타내며 r-value는 메모리 주소를 가지지 않는 임시값이나 수정이 불가능한 값으로 간주한다. 예를 들어 int x = 5; 라는 코드가 있다고 가정하면 'x'는 l-value라고 볼 수 있고 '5'는 r-value라고 볼 수 있는것이다. 그래서 이게 왜 필요하냐? 라고 의문을 가질 수도 있을 텐데 r-value 참조는 이동 시멘틱과 효율적인 자원 관리를 위해 추가 됐으며 잘 사용한다면 불필요한 메모리 복사를 피해 프로그램의 성능을 향상시킬 수 있다..
//Pointer int* pNum = # *pNum = 30; //Reference int& ref = num; ref = 30; 참조형 변수 또는 참조자는 처음 어떤 변수와 짝을 이루게 되면 그 짝이 달라지지 않는다. 그렇다고 짝을 이룬 원래 변수가 달라진 것을 감지해 주는 것도 아니며 다만 포인터의 일반적인 사용 문제 몇 가지를 문법적으로 차단했다. 사용하면서 특이한 점이라고 한다면 '겉으로 보기에는 전혀 포인터로 보이지 않는다는 점'과 포인터를 사용하면서 생기는 문제점들을 문법적으로 통제를 시켜놓은 탓에 포인터를 사용할 때 뒤따라오는 문제점들이 참조형 변수나 참조자를 사용할 때는 따라오지 않는다는 점이다. C++에서는 가급적 참조자를 사용하는 게 좋아 보이며 참조자를 통한 해결 방안이 없는..