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

  • huyked

    huyked

    28 Mart 2008
  • sinumatic

    sinumatic

    19 Aralık 2006
  • Utah Valley Online

    Utah Valley

    9 AĞUSTOS 2010