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

  • HDstarcraft

    HDstarcraft

    12 Mayıs 2009
  • katherine gomez

    katherine go

    1 Aralık 2011
  • LimeFire

    LimeFire

    2 ŞUBAT 2012