ref, out 강의에서 질문
Rookiss님 안녕하세요?
c++ 강의를 듣고 다음을 기다릴 수 없어 c#까지 넘어오게 되었습니다.
항상 좋은 강의 기대하고 있습니다.
c# ref 와 out 강의에서 궁금한점이 있습니다.
메서드에서 return을 하나밖에 해줄 수 없는 점을 극복하기 위해 out 키워드가 있다고 하셨습니다
질문 1.
c++에서
#include <iostream>
using namespace std;
void add(int& a, int& b)
{
a++;
b++;
}
int main()
{
int a = 1;
int b = 2;
add(a, b);
cout << a << endl;
cout << b << endl;
return 0;
}
위와 같은 코드로 레퍼런스 &를 사용하면 return이 마치 2개인 것 같은 효과를 낼 수 있습니다. 하지만 c++ 수업에서는 return을 여러개 한다는 것을 강조? 말씀하시지 않았는데 왜 그런지 궁금합니다. C#은 c++과 다른 목적으로 만들어진 언어이기 때문에 여러개의 return 값은 갖는 것이 중요한 것인가요???
질문 2.
static void Divide2(int a, int b, ref int result1, ref int result2)
{
result1 = a / b;
result2 = a % b;
}
int result1 = 0;
int result2 = 0;
_6_ref와out.Divide2(10, 3, ref result1, ref result2);
Console.WriteLine(result1);
Console.WriteLine(result2);
위와 같이 ref을 이용해서도 마치 return이 여러개인 것처럼 작동할 수 있는데 out이란 키워드를 따로 만든 이유가 있나요?
물론 out을 사용할 때는 result1과 result2의 초기화가 필요없었지만 ref를 사용하면 초기화가 필수적이었습니다.
이런 차이 때문인건가요?
답변 1
1
하지만 c++ 수업에서는 return을 여러개 한다는 것을 강조?
말씀하시지 않았는데 왜 그런지 궁금합니다.
C#은 c++과 다른 목적으로 만들어진 언어이기 때문에
여러개의 return 값은 갖는 것이 중요한 것인가요???
-> 강의를 만들 때 아주 심도있게 대본을 짜고 만드는게 아니라
그냥 그때 그때 생각나는 것을 얘기하기 때문에
조금씩 차이가 있을 수 있습니다 ㅎㅎ
C++도 마찬가지로 단일 return으로 부족할 때
reference나 pointer를 이용해서 결과를 함수로 외부 전달하는 것은 동일합니다.
물론 정말 원한다면 tuple과 같이 데이터를 묶어서 리턴하는 방법도 있긴 합니다.
Generic에 대한 질문 있습니다.
0
96
2
2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?
0
201
2
다형성 캐시 문제
0
113
3
.
0
71
1
프로퍼티 강의 질문 있습니다.
0
78
1
이후 커리 질문
0
86
1
static
0
91
2
강의에는 새로운 클래스 파일을 생성하면...
0
72
1
생성자의 이름 선언
0
65
1
9:03 Divide(10 , 3) 부분 질문입니다
0
88
1
깃허브 관련 질문 있습니다.
0
239
1
비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문
0
249
1
C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!
0
306
2
Activator 질문있습니다
0
332
1
이넘 타임 선언 질문
0
346
1
Sort 오름차순, 내림차순
0
323
1
질문 있습니다.
0
249
1
팩토리얼 문제
0
270
1
Sort함수 질문있습니다.
0
265
1
다형성 함수 질문 있습니다.
0
221
1
질문이 있습니다.
0
227
1
섹션2 연습문제 질문입니다.
0
214
1
안녕하세요~서버에 대해 질문이 있습니다.
1
282
1
텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ
0
394
1





