참조자(공간)
- 이미 존재하는 변수에 대한 다름 이름을 선언
- 포인터 변수로 하면 접근성이 떨어져서 참조자로 사용
- 선언시에 쓰는 것은 주소가 아닌 참조자
- 참조변수는 이름만 생기며
- 참조변수에 새로운 공간을 할당하지 않는다.
- 초기화로 지정된 기존변수를 공유한다.
- 공간을 같이 쓴다.
주의사항
1. 참조자의 타입은 대상이 되는 변수의 타입과 일치해야 합니다.
2. 참조자는 선언과 동시에 초기화되어야 합니다.
3. 참조자는 한 번 초기화되면, 참조하는 대상을 변경할 수 없습니다.
ex 1)
#include <iostream>
using namespace std;
char& find(char s[], int index) {
return s[index];
}
int main() {
char name[] = "Mike";
cout << name << endl;
find(name, 0) = 'S';
cout << name << endl;
char& ref = find(name, 2);
ref = 't';
cout << name << endl;
return 0;
}
ex 2) 키보드로부터 반지름 값을 읽어 Circle 객체에 반지름을 설정하는 readRadius()함수를 작성
#include <iostream>
using namespace std;
class Circle {
int radius;
public:
Circle() { radius = 1; }
Circle(int radius) { this->radius = radius; }
void setRadius(int radius) { this->radius = radius; }
double getArea() { return 3.14 * radius * radius; }
};
void readRadius(Circle &c) {
int r;
cout << "반지름의 값을 입력하세요: ";
cin >> r;
c.setRadius(r);
}
int main() {
Circle donut;
readRadius(donut);
cout << "donut의 면적 = " << donut.getArea() << endl;
}
'Programming > C++' 카테고리의 다른 글
C++ static (0) | 2021.04.21 |
---|---|
C++ 얕은복사 깊은복사 (0) | 2021.04.21 |
C++ 문자열 string 실습 (0) | 2021.04.20 |
C++ 동적할당 실습 문제 (0) | 2021.04.20 |
C++ 객체 포인터 선언 및 활용 (0) | 2021.04.19 |
댓글