Bir metin dosyasına, kendisine gönderilen verileri kaydeder bir işlevi bulunan bir sınıf yapmak istiyorum. kendisine geçirilen edilebilir veri vb std::string
, int
, double
, float
, unsigned int
, böyle bir şey olabilir ve aynı zamanda bir olabilir: std::vector<T>
, T[]
ve std::vector<std::vector<T>>
, T[][]
. o diziyseC++ tipleri inşa diziler, vektörler, için şablon işlevi, STL
Şimdi, belli ki, ben metin dosyası veri göndermek içinden yineleme gerekecektir.
Ben şablonları kullanarak düşünüyordum ama diziler nasıl emin değilim.
bu yöntem midir?
class CMyClass
{
template<typename T>
void SaveData(T data);
void SaveData(std::vector<T> data);
void SaveData(std::string data);
void SaveData(T* data); // Perhaps I'll also need to pass in the size.
void SaveData(std::vector<std::vector<T>> data);
void SaveData(T** data);
};
Ben std::string
için kod std::vector<T>
T
bir (int
veya float
falan bir benzeri) tipinde inşa olması şartıyla için koduyla aynı olacağını düşünün.
Sonra buna göre SaveData(...)
her biri için işlevler yazmak? Bildiğim kadarıyla gördüğünüz gibi, sınıf ne hakkında (onun "sorumluluk") bir dosyaya veri yazmaktır:
Başlığınız çok geniş ve belirsiz, bunu yeniden ifade etmek isteyebilirsiniz. –
FYI: http://www.boost.org/doc/libs/1_48_0/libs/serialization/doc/index.html – Anycorn