본문 바로가기
Programming/C++

C++ 참조자

by ahhang0k 2021. 4. 20.

참조자(공간)

- 이미 존재하는 변수에 대한 다름 이름을 선언

- 포인터 변수로 하면 접근성이 떨어져서 참조자로 사용

- 선언시에 쓰는 것은 주소가 아닌 참조자

- 참조변수는 이름만 생기며

- 참조변수에 새로운 공간을 할당하지 않는다.

- 초기화로 지정된 기존변수를 공유한다.

- 공간을 같이 쓴다.

 

 

주의사항

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;
}

ex1 그림설명

 

 

 

 

 

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;
}

ex 2 그림설명

'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

댓글