[문과 코린이의 IT 기록장] C,C++ - 객체배열 (객체 배열, 객체 포인터 배열)
[문과 코린이의 IT 기록장] C,C++ - 객체배열 (객체 배열, 객체 포인터 배열) 1. 객체 배열 ex) 1) 객체배열 형태 : 클래스명 객체명[크기] ex. Person parr[3] - 이 객체배열이 실행될 때, 생성자가 3번 실행된다. (3개의 객체가 생기는 것이므로) - 마찬가지로, return을 만나 소멸할 경우에도, 소멸자가 3번 실행된다. 2) 동적으로 객체 배열 선언하기 Point * p1 = new Point[5]; - 동적으로 객체 배열을 선언하는 경우에도, deflat constructor을 이용해 모두 초기화된다. - 즉, 이 코드는 Point형 객체에 대한, 5개를 사용할 수 있는 메모리 공간을 동적으로 확보하고, 각 공간에 defalt constructor로 객체를 생성한다..
[문과 코린이의 IT 기록장] C,C++ - 레퍼런스(&) (참조자, 함수 인자로 레퍼런스 받기, 참조자의 참조자? , 상수에 대한 참조자, 레퍼런스의 배열과 배열의 레퍼런스, 레퍼런스를 리턴하는 함수)
1. 참조자 (reference) - C++에 새로 도입되는 새로운 개념 * C언어에서는 어떠한 변수를 가리키고 싶을 때는 반드시 포인터를 사용해야 한다. * 그렇지만 C++에서는 다른 변수나 상수를 가리키는 방법으로, 또 다른 방식인 참조자(ref)를 제공한다. - 참조자를 사용하면 포인터에 비해, 불필요한 &와 *의 사용이 없다. 따라서 훨씬 더 코드를 간결하게 나타낼 수 있다. - 참조자란 '또 다른 이름(별명)' 이라고 이해하면 된다. ex ) - int & another_a = a; // another_a는, int형 변수 a의 참조자이다. - another_a = 5; // another_a는 a와 같은 것이므로, a의 값도 같이 변경된 것을 볼 수 있다. 1) 참조자(레퍼런스) 정의 방법 -..
[문과 코린이의 IT 기록장] C,C++ - 함수에서 포인터 활용하기(함수끼리의 변수의 값 변경, 포인터를 활용한 함수 문제 해결, SWAP함수, 배열을 인자로 받아들이는 함수, 상수를 인자로 받아들이..
- 이제 포인터를 실제로 써먹을 수 있는 방법을 배울 수 있다. * 혹시 아직 포인터에 대한 내용을 잘 모른다면, 아래 자료를 참고해 주세요 :) 1. 함수끼리의 변수의 값 변경 - 저번 내용에서, main함수에서 다른 함수에서 정의된 변수의 값을 바꿀 수 없다고 이야기 했다. ex ) i의 값이 전혀 바뀌지 않았다는 것을 알 수 있다. 그 이유는 함수 change_val을 호출할 때, change_val함수 안에서 정의된 변수인 i는, main함수의 i의 값을 전달 받은 후에, change_val 함수 안에서 정의된 변수 i의 값을 3으로 변경하게 된다. 그런데, main함수의 i가 아닌, chage_val함수 내에서 정의된 변수 i의 값이 3으로 변경되는 것이기 때문에, 결국 main함수의 i값에는 ..
[문과 코린이의 IT기록장] 컴퓨터 구조 - 2.(7) ~ 2.(9) [ 판단을 위한 명령어, 하드웨어의 프로시저 지원, MIPS의 32bit 수치를 위한 주소지정 및 복잡한 주소지정 방식 ]
[문과 코린이의 IT기록장] 컴퓨터 구조 - 2.(7) ~ 2.(9) [ 판단을 위한 명령어, 하드웨어의 프로시저 지원, MIPS의 32bit 수치를 위한 주소지정 및 복잡한 주소지정 방식 ] 7. 판단을 위한 명령어 * if문, go to문 1) 조건부 분기 (1) beq register1, register2, L1 : register1과 register2의 값이 같으면, L1에 해당하는 문장으로 가라 : branch if equal (2) bne register1, register2, L1 : register1과 register2의 값이 같지 않으면, L1에 해당하는 문장으로 가라 : branch if not equal [ If-then-else를 조건부 분기로 ..