일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Machine Learning
- gpt
- supervised learning
- 딥러닝
- AI
- 티스토리챌린지
- 머신러닝
- regression
- 회귀
- LG
- 분류
- Classification
- GPT-4
- LG Aimers
- ChatGPT
- 지도학습
- LLM
- OpenAI
- 해커톤
- PCA
- deep learning
- 오블완
- LG Aimers 4th
Archives
- Today
- Total
SYDev
C++ Chapter 04-4 추가 내용 본문
문제
Self-Reference의 반환 파트에서 다음 코드를 보고 의문점이 생겼다.
SelfRef& ShowTwoNumber() // 객체 자신의 참조의 정보(참조값)을 반환
{
cout<<num<<endl;
return *this; // 객체 자신의 값
}
반환형은 참조형인데 반환값은 참조자가 아닌 *(포인터) 형태이다. 그렇다면 *(pointer)의 자료형은 참조형인 것일까? 아니면 this 포인터의 경우에만 위 상황이 성립이 되는 것인가?
문제 풀이
우선 this 포인터의 경우에는 해당 상황이 성립하는 것을 확인했기 때문에, 일반적인 포인터의 경우에서도 성립함을 보이면 *(pointer)의 자료형은 참조형임을 단편적으로 증명할 수 있다.
#include <iostream>
using namespace std;
int& RefReturn(int * ptr)
{
return *ptr;
}
int main(void)
{
int num1 = 1;
int * ptr1 = &num1;
int & ref = RefReturn(ptr1);
cout<<ref<<endl;
++(*ptr1);
++(ref);
cout<<ref<<", "<<*ptr1<<endl;
return 0;
}
1
3, 3
위 예제를 통해서 &ref = *pointer 선언이 가능한 것과 둘 다 같은 주소에 접근하는 것을 확인함.
결론
*pointer는 참조형으로 취급한다.
'Programming Lang > C++' 카테고리의 다른 글
C++ Chapter 10-3 : 교환법칙 문제의 해결 (0) | 2023.07.24 |
---|---|
C++ Chapter 10-2 : 단항 연산자의 오버로딩 (0) | 2023.07.24 |
C++ Chapter 10-1 : 연산자 오버로딩의 이해와 유형 (0) | 2023.07.23 |
C++ Chapter 09-2 : 다중상속(Multiple Inheritance)에 대한 이해 (0) | 2023.07.20 |
C++ Chapter 09-1 : 멤버함수와 가상함수의 동작 원리 (0) | 2023.07.20 |