ฉันกำลังเขียนไลบรารีเมทริกซ์ขนาดเล็กใน C ++ สำหรับการดำเนินการเมทริกซ์ อย่างไรก็ตามคอมไพเลอร์ของฉันบ่นซึ่งก่อนหน้านั้นไม่ได้ รหัสนี้ถูกวางไว้บนหิ้งเป็นเวลา 6 เดือนและในระหว่างที่ฉันอัพเกรดคอมพิวเตอร์ของฉันจากเดเบียนจำหลักเป็นเลนนี่ (g ++ (เดเบียน 4.3.2-1.1) 4.3.2) แต่ฉันมีปัญหาเดียวกันในระบบ Ubuntu ที่มี g ++ เดียวกัน .
นี่คือส่วนที่เกี่ยวข้องของคลาสเมทริกซ์ของฉัน:
namespace Math
{
class Matrix
{
public:
[...]
friend std::ostream& operator<< (std::ostream& stream, const Matrix& matrix);
}
}
และ "การใช้งาน":
using namespace Math;
std::ostream& Matrix::operator <<(std::ostream& stream, const Matrix& matrix) {
[...]
}
นี่เป็นข้อผิดพลาดที่คอมไพเลอร์กำหนด:
matrix.cpp: 459: ข้อผิดพลาด: 'std :: ostream & Math :: matrix :: โอเปอเรเตอร์ << (std :: ostream &, const Math :: Matrix &) ต้องใช้อาร์กิวเมนต์หนึ่งตัว
ฉันสับสนเล็กน้อยจากข้อผิดพลาดนี้ แต่แล้ว C ++ ของฉันอีกครั้งได้รับสนิมเล็กน้อยหลังจากทำ Java จำนวนมากใน 6 เดือน :-)