이전에는 fstream 객체의 주소를 I/O 연산을 수행하는 생성자를 포함한 모든 함수에 전달했습니다. 하지만 fstream 객체를 멤버 변수로 사용할 수있게하여 모든 후속 I/O 작업에서 인수로 전달하는 대신 해당 변수를 사용할 수있게하려고합니다.어떻게 fstream 객체를 멤버 변수로 사용할 수 있습니까?
public class A {
Scanner sc;
public A(Scanner read) {
sc = read;
}
}
는 어떤이의 C++ 동등한 것 :
는 다음과 같은 자바 프로그램을 고려
? 나는이class A {
ofstream *out;
public:
A (ofstream &output) {
out = output;
}
};
일을 시도하지만이 나에게 컴파일 오류가 있습니다 : 당신은 아마 파일에 대한 전문 std::ofstream
때문에
class A {
ofstream *out;
public:
A (ofstream &output) : out(&output) {
//^Take the address
}
};
을 원하는
[Error] invalid user-defined conversion from 'std::ofstream {aka std::basic_ofstream}' to 'std::ofstream* {aka std::basic_ofstream*}' [-fpermissive]
포인터에 대한 참조를 할당 할 수 없습니다. 그것들은 다른 것들입니다. – tkausl
_ "하지만이 때문에 컴파일 오류가 발생합니다."_ 컴파일 오류에 대해 구체적으로 설명하십시오. [MCVE]를 게시하십시오! –
또한 출력을 요구하고 있습니다. _scanner_와 같은 입력은 아닙니다. –