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
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.
Nasıl C köşeli operatör aşırı yükleme ...
Nasıl aşırı [] operatör...
Nasıl sonek ve önek için iki farklı şe...
Nasıl'==' sonsuz özyineleme ...
Nasıl ya da başka bir aritmetik operat...