이와 같은 클래스가있는 경우 복사 생성자는 어떻게 작성해야합니까?std :: stringstream 멤버가있는 클래스의 복사본 생성자를 작성하려면 어떻게해야합니까?
#include <stringstream>
class MyClass {
std::stringstream strm;
public:
MyClass(const MyClass& other){
//...
}
std::string toString() const { return strm.str(); }
};
표준 : 이제 stringstream은 더 복사 생성자 자체가 없다, 그래서 나는이 같은 initialiser 목록을 사용할 수 없습니다
MyClass(const MyClass& other): strm(other.strm) {}
이 경우 콘텐츠 만 복사되며 개체의 상태는 복사되지 않습니다. :/ – Naszta
@Naszta : 네, 당신은 당신 자신의 대답에 이것을 암시합니다. 이 답변의 코드는'std :: stringstream'에 어떤 영향을 줍니까? – quamrana
@Naszta : 당신 말이 맞아요. 그러나 스트림을 복사하는 것은 잘 정의 된 작업이 아니므로 작성자에게 컨텍스트 고유의 정의를 제공해야합니다. 예를 들어 복사 된 스트림에서 원본 버퍼와 기본 버퍼를 공유해야하는 경우이를 달성 할 수 없습니다. – ognian