[8] 프렌드: friend Time operator*의 인라인함수로서의 return 원리
429
작성한 질문수 1
[8]챕터의 '프렌드'강의에서 마지막에
Time operator+(Time&);을 새롭게 만들어주고
friend Time operator*(int n, Time& t) { return t * n; }으로 새롭게 고쳐주었는데 이때 return t * n이 어떻게, 어떤 식으로 작동할 수 있는 것인지 궁금합니다.
Time& 자체에는 hours와 mins라는 두 개의 변수가 있을 텐데 두 변수에 모두 n을 곱한 값을 return해서 Time operator*(int)에 넘겨주는 것인지, 어떤 형태로 넘겨주는 것인지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
friend Time operator*(int n, Time& t) { return t * n; } 이 코드는 int와 Time의 곱셈을 정의하는 연산자 오버로딩 함수로, 구현된 새로운 곱셈 연산을 허용합니다.
t * n에서 t는 Time 객체이고, n은 정수형(int)입니다. 이 때, t * n은 Time 클래스에 정의된 다른 operator* 함수에서 처리됩니다.
이 때, 곱셈 연산은 Time 객체의 멤버 변수인 hours와 mins을 각각 n으로 곱한 결과를 새로운 Time 객체로 반환합니다. 따라서 함수 내부에서는 t.hours * n과 t.mins * n으로 값을 계산한 후, 그 결과를 새로운 Time 객체의 hours와 mins 변수에 할당하여 반환합니다.
즉, friend Time operator*(int n, Time& t) 함수는 t * n 연산이 수행되도록 하며, 반환되는 값은 Time 객체입니다.
더 자세한 내용이 필요하시다면, Time 클래스에 정의된 operator* 함수의 구현을 살펴보시면 될 것 같습니다.
고맙습니다.
switch 구문과 break continue 구문 강의 질문드립니다
0
60
1
opreator*
0
79
1
cin은 c언어에서의 scanf와 동일하다고 봐도 될까요?
0
140
0
질문이 있습니다.
0
109
1
temp1 선언
0
91
1
const MyStruct& 사용
0
114
0
인트형 포인터의 사이즈가 8이 나옵니다.
0
219
1
MyStruct* temp = new MyStruct; 에서 temp도 delete를 해야하나요?
0
129
1
#include <iostream> 중복
0
155
1
int sum=sumArr(arr. SIZE) 문의
0
137
1
4:04질문입니다.
0
112
1
4:39 질문입니다.
0
130
1
질문있습니다.
0
105
1
질문있습니다.
0
108
1
9:11 b에는 a이 주소값이 들어갔다고 하는데 *b의 값이 왜 a랑 같은 값이 나오나요?
0
163
1
빌드 실패 오류 질문 드립니다!
0
397
1
추상화와 클래스중 질문
0
177
1
질문사항 있습니다..동작을 안하고 있어요..
0
340
2
질문 드립니다
0
189
1
함수와 구조체 강의 음성이 이상합니다.
0
200
1
분할 컴파일 과정에서의 오류 발생
0
606
2
<<, >> 비트 연산자에 대한 설명이 맞나요?
0
453
2
포인터 연산
0
390
2
비주얼 스튜디오 코드를 사용해도 되나요?
0
805
1





