我是C++的新手,最近接受了面向對象編程的學習。我想寫我自己的 線性代數模塊處理三維向量和3x3矩陣。我試圖將一個矩陣定義爲由三個向量組成的類。使用另一個類C++構造一個類
class vector {
public:
double n1, n2, n3;
vector (double a, double b, double c) {
n1 = a; n2 = b; n3 = c;
}
};
class matrix {
public:
vector m1, m2, m3;
matrix (vector a, vector b, vector c) {
m1 = a; m2 = b; m3 = c;
}
};
但是,我得到一個編譯錯誤:
In constructor `matrix::matrix(vector, vector, vector)':
no matching function for call to `vector::vector()'
我猜測,該計劃犯規知道如何使用我定義的矢量類構造一個矩陣。 但我不明白爲什麼。如果有人能解釋,我會非常感激。
使用,而不是在構造函數體賦予它們初始化列表。 –
[構造函數中這個奇怪的冒號成員語法是什麼意思?]可能重複(http://stackoverflow.com/questions/1711990/what-is-this-weird-colon-member-syntax-in-the-constructor ) –
您可能希望將您的矢量類放在名稱空間中,以防止與'std :: vector'混淆。因爲當我讀你的矩陣類時,我認真考慮你打算使用'std :: vector',但事實並非如此。 – hetepeperfan