22 Ocak 2018 Pazartesi

std::basic_ios (aka std::ios) Sınıfı

Giriş
Kalıtım hiyerarşisi şöyle
std::ios_base <--std::basic_ios <--std::istream ve std::ostream
Bu 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