SORU
24 Ocak 2009, CUMARTESİ


Düzgün < aşırı yük nasıl;< bir başka operatör?

Matris işlemleri için C matrisi küçük bir kütüphane yazıyorum. Benim derleyici şikayet etmedi daha önce nerede ancak. Bu kod lenny debian etch benim bilgisayar yükseltilmiş arasında 6 ay ve bir raf (g (Debian 4.3.2-1.1) 4.3.2 üzerinde kaldı ancak aynı g ile Ubuntu sisteminde de aynı sorun var .

İşte matrix sınıf benim: ilgili bölüm

namespace Math
{
    class Matrix
    {
    public:

        [...]

        friend std::ostream& operator<< (std::ostream& stream, const Matrix& matrix);
    }
}

Ve"":. uygulama

using namespace Math;

std::ostream& Matrix::operator <<(std::ostream& stream, const Matrix& matrix) {

    [...]

}

Bu hatayı derleyici tarafından verilmektedir

matrix.:459 cpp: hata: ':: std başka& ::Matematik Matris::operator<< (:: std başka&, ::sabit Matematik Matris&)' almalıdır tam olarak bir argüman

Biraz bu hata tam olarak anlamadım, ama sonra yine benim C Java var bu 6 ay yaptıktan sonra biraz paslı aldı. :-)

CEVAP
24 Ocak 2009, CUMARTESİ


friend işlevi olarak ilan etti. Sınıfının bir üyesi değil. Uygulama Matrix:: çıkarmak gerekir. friend belirtilen işlev sınıfının bir üyesi değildir) özel üye değişkenleri erişmek anlamına gelir. İşlevini uygulanan yol yanlış olan Matrix Sınıf için örnek bir yöntem gibi.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Floortile83

    Floortile83

    16 Ocak 2010