아래 메소드 이름은 open_file
입니다.Ifstream을 할당하고 메서드에서 변수로 반환하는 방법은 무엇입니까?
ifstream& open_file(ifstream &in, const string &filename)
{
in.close();
in.clear();
in.open(filename.c_str());
return in;
}
나는 main() 메소드에서 변수에 반환 값을 할당 할 :
int main()
{
ifstream val1;
ifstream val2 = open_file(val1, "test.cpp");
return 0;
}
내가 코드를 컴파일 할 수 없습니다. 내 질문 :
- open_file 메서드의 반환 값을 main()의 변수에 할당 할 수 있습니까? 그렇다면 어떻게 할 수 있습니까?
- open_file 메서드의 반환 값을 변수에 할당 할 수없는 경우 반환 유형을 void로 변경하면 어떤 차이가 있습니까?
실제로 무엇을하려는 것입니까? 참조로 val1을 전달했다가 반환하고 val2에 할당하려고합니다. 또한 오류 설명은 무엇입니까? –
어쨌든 참조로 매개 변수를 전달한 이유는 무엇입니까? 이것이 쉽게 연결될 수있는 연산자라면, 나는 그것을 볼 수있었습니다. 그렇지 않으면 함수 내에서 in 매개 변수의 임의의 변이가 어쨌든 외부에서 관찰 될 수 있습니다. –
나는 val2를 val2로 다시 돌려 보려고한다. C# 배경에서 C++ 복사 작업을 이해해야합니다. – Anonymous