객체와 함수
객체와 함수
- 객체와 함수의 관계
- 객체가 함수의 매개 변수로 전달되는 경우
- 객체의 참조자가 함수의 매개 변수로 전달되는 경우
- 함수가 객체를 반환하는 경우
객체가 함수의 매개변수로 전달되는 경우 - param.cpp
- 함수의 인수는 기본적으로 값에 의해 매개 변수로 전달
- 객체일 때도 마찬가지 --> 객체가 복사됨
#include <iostream> using namespace std; class Pizza { public: int size; Pizza(int s) : size(s) {} }; void makeDouble(Pizza p) { p.size *= 2; } int main() { Pizza pizza(10); makeDouble(pizza); cout << pizza.size << "인치 피자" << endl; return 0; }
10인치 피자
- 함수의 인수는 기본적으로 값에 의해 매개 변수로 전달
객체가 함수의 매개변수로 전달되는 경우 - reference_param.cpp
- 객체를 복사하지 않고, 원본 복사에 새로운 이름을 부여하고 그 이름으로 접근
- int i;
- int& j = i; // i에 대한 참조자(새로운 이름) 정의
#include <iostream> using namespace std; class Pizza { public: int size; Pizza(int s) : size(s) {} }; void makeDouble(Pizza& p) { p.size *= 2; } int main() { Pizza pizza(10); makeDouble(pizza); cout << pizza.size << "인치 피자" << endl; return 0; }
20인치 피자
함수가 객체를 반환하는 경우 - object_return.cpp
- 객체의 내용이 복사될 뿐 원본이 전달되지 않음
#include <iostream> using namespace std; class Pizza { public: int size; Pizza(int s) : size(s) {} }; Pizza makePizza() { Pizza p(10); return p; } int main() { Pizza pizza = makePizza(); cout << pizza.size << "인치 피자" << endl; return 0; }
10인치 피자
정적할당 된 리턴값을 참조로 받을 수 없다. (&pizza X : 원본이 메모리에서 사라지므로)
'IoT 디바이스 활용 > C++' 카테고리의 다른 글
C++ - 포인터 (0) | 2020.10.12 |
---|---|
C++ - 객체 배열, 벡터 (0) | 2020.10.12 |
C++ - 생성자와 접근 제한자 (0) | 2020.10.12 |
C++ - 클래스와 객체 (0) | 2020.10.11 |
C++ - 문자열 (0) | 2020.10.11 |
댓글