C++

C, C++

C++) 임시 객체와 r-value 참조

임시 객체 int a(10), b(5), c = a + b; 각각 a, b, c 인스턴스가 있다. 그 중 c 인스턴스는 a 와 b를 더한 값이다. a와 b를 더하는 과정에서 생성되는 인스턴스(값)는 c에 대입된 후 증발될 것이다. 즉, 임시 객체는 이름을 갖지 않으며 본인의 역할을 다 한 뒤 소멸된다. r-value 참조 a + b는 c라는 l-value에 할당되는 r-value라고 할 수 있다. 즉 임시객체는 r-value이다. r-value는 자신의 역할을 다 하면 소멸되지만, 굳이 r-value에 참조를 걸어 변수로 만들어 줄 수도 있다. 선언하는 방법은 자료형&& 식별자 = 임시객체 이다. #include int testFunc(int param) { int result = param * 2; r..

C, C++

C++) 참조형 (변하지 않는 포인터)

참조형 참조형은 특정 인스턴스의 주소를 참조하는 자료형이라고 할 수 있다. C의 포인터와 비슷하다. 특이한 점은 선언과 동시에 초기화를 해야하며, 이후 값을 변경할 수 없다는 것이다. 참조형이 메모리에서 직접 참조중인 데이터는 변경이 가능하겠지만, 참조형 자체가 가진 메모리 주소값은 변경이 안된다. (참조 메모리가 불변이라는 점에서 진정한 의미의 Call by reference라고 할 수 있다.) int main() { int data(10); // 참조형 int& ref = data; ref = 20; std::cout

C, C++

C++) 메모리 동적 할당

C++의 메모리 동적 할당은 C의 그것에 비해 훨씬 간편하다 C의 경우 malloc 함수를 호출할 때 매개변수로 메모리의 크기부터 형까지 모든 것들을 C에 알려주었어야 했는데, C++에서는 단순히 new 연산자를 이용해 메모리를 동적 할당하고, delete 연산자로 메모리 할당을 해제하면 된다. 아래 코드를 보자 개별 인스턴스의 new, delete 연산자 int main(void) { int* pData = new int; int* pNewData = new int(10); *pData = 1000; std::cout

C, C++

C++) 변수 선언 및 정의

C++ 변수 선언 및 정의 C에서는 변수 정의를 아래와 같이 했다. int a = 10; C++도 C 문법을 호환하기에 위처럼 변수를 선언하고 정의할 수 있다. 그러나 C++에서 주로 사용하는 변수 선언 및 정의는 아래 코드처럼 한다. int main() { int a(10); int b(a + 5); auto c(b + 5); std::cout

C, C++

C++) 리다이렉션 연산자 및 std::cout (콘솔 출력)

리다이렉션 연산자 (>>) >> 기호는 명령의 출력을 파일에 추가하는데 사용된다. 예를 들어 dir >> test.txt 라는 명령을 실행하면 dir 명령의 결과가 test.txt라는 파일에 추가되는 형식이다. 이런것이다. 이 기호는 C++에서도 엇비슷하게 동작한다. std::cout (콘솔 출력) 기본 입출력을 한번 더 해보자. int main() { std::cout

C, C++

C++) Hello world

안녕 C++ 헬로~ #include int main(void) { std::cout

2DC
'C++' 태그의 글 목록 (2 Page)