Böyle bir dersim varsa, kopya kurucuyu nasıl yazmalıyım?Std :: stringstream üyesi olan sınıfım için nasıl bir kopya oluşturucu yazarım?
#include <stringstream>
class MyClass {
std::stringstream strm;
public:
MyClass(const MyClass& other){
//...
}
std::string toString() const { return strm.str(); }
};
std :: stringstream hiçbir kopya kurucu kendisi vardır, bu yüzden böyle bir Başlatıcı listesini kullanamazsınız:
MyClass(const MyClass& other): strm(other.strm) {}
Bu durumda yalnızca içerik kopyalanır, nesnenin durumu değil. :/ – Naszta
@Naszta: Evet, bunu kendi cevabınızla ima ediyorsunuz. Bu cevaptaki kod bir "std :: stringstream" yi nasıl etkiler? – quamrana
@Naszta: Haklısınız. Bununla birlikte, bir akışı kopyalamak iyi tanımlanmış bir işlem değildir, bu yüzden içeriğe özgü bir tanım vermek için yazara bırakılmıştır. Örneğin, kopyalanan akışın temel nesneyi orijinal nesneyle paylaşması gerekiyorsa, bunu başaramayacaksınız. – ognian