Giriş
Kalıtım hiyerarşisi şöyle
operator bool metodu - C++11
C++11 ile imzası şöyle oldu. Yani explicit hale geldi.
İşlemin başarılı olduğunu kontrol etmek için stream'in kendisi döndürülebilir. Şöyle yaparız.
Açıklaması şöyle.
Kalıtım hiyerarşisi şöyle
std::ios_base <--std::basic_ios <--std::istream ve std::ostreamBu sınıfın char ile özelleşmiş haline std::ios denilir.
operator bool metodu - C++11
C++11 ile imzası şöyle oldu. Yani explicit hale geldi.
explicit operator bool() const;
Örnekİşlemin başarılı olduğunu kontrol etmek için stream'in kendisi döndürülebilir. Şöyle yaparız.
std::ios& readData(std::ifstream &someFile, std::string &city, double &rain) {
return someFile >> city >> rain;
}
Bu durumda kullanmak için şöyle yaparız.if (readData(file, city, rain)) {
// ...
}
Ben bu kullanımı sevmiyorum. read() metodunun direkt bool dönmesi daha iyi. Şöyle yaparız.bool readData(std::ifstream &someFile, std::string &city, double &rain) {
return bool{someFile >> city >> rain};
}
Ya da şöyle yaparız.bool readData(ifstream &someFile, string &city, double &rain)
{
return static_cast<bool>(someFile >> city >> rain);
}
tie metodu
Açıklaması şöyle.
This unties cin from cout. Again, by default they're tied to make cout appear before cin (i.e. output flushes before input) so you can make for example the following:
cout << "Number: ";
cin >> number;
Bu iki akımı ayırmak için şöyle yaparız.cin.tie(NULL);
Hiç yorum yok:
Yorum Gönder