SORU
11 EKİM 2009, Pazar


C eşdeğer java.olabilirdi?

Bir akış, cout yani, özel bir sınıfın bir nesnesi için yazılmış bir kontrol etmek istiyorum. Bu C mümkün mü ? Java benzer bir amaç için toString() yöntemini geçersiz kılar.

CEVAP
11 EKİM 2009, Pazar


C ostream Özel Sınıf operator<< aşırı yüklenmeye neden olabilir:

class A {
public:
  int i;
};

std::ostream& operator<<(std::ostream &strm, const A &a) {
  return strm << "A(" << a.i << ")";
}

Sınıf akışlarında örnekleri çıkış yolu::

A x = ...;
std::cout << x << std::endl;

operator<< sınıf iç A yazdırmak istiyor Eğer gerçekten özel ve korunan üyeleri için erişim gerekir diye de arkadaş bir fonksiyonu olarak bildirebilirsiniz:

class A {
private:
  friend std::ostream& operator<<(std::ostream&, const A&);
  int j;
};

std::ostream& operator<<(std::ostream &strm, const A &a) {
  return strm << "A(" << a.j << ")";
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
C++

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • julioissk84life

    julioissk84l

    18 ŞUBAT 2008
  • PaysNatalAu's channel

    PaysNatalAu'

    11 Aralık 2010