我有一個名爲magicSquare的類,帶有一個構造函數和一個名爲display的顯示函數。構造函數創建幻方,顯示函數顯示結果。在我的主函數中,我創建了一個名爲ms的magicSquare實例並賦予它一個值7.要顯示它,如果我只是執行了ms.display(),它不應該起作用嗎?如何正確實現一個類的顯示功能?
class magicSquare
{
private:
int size, square;
vector<vector <int> > finalvec;
public:
magicSquare(int a):finalvec(a, std::vector<int>(a))
{
int i = 0;
int j = a/2;
size = a;
square = a * a;
vector<int>vec(a);
vector<vector<int> > finalvec(a,vec);
for (int i = 0; i < size; i++)
{
for (int j = 0; j< size; j++)
cout << finalvec[i][j];
cout << endl;
}
for (int k=0; k < square; ++k)
{
finalvec[i][j] = k;
i--;
j++;
if (k%a == 0)
{
i = i+ 2;
--j;
}
else
{
if (j==a)
j = j- a;
else if (i<0)
i = i+ a;
}
}
}
void display()
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j< size; j++)
cout << finalvec[i][j];
cout << endl;
}
}
};
int main()
{
magicSquare ms(3);
ms.display();
return 0;
}
正確縮進你的代碼將幫助您找到至少一個錯誤。之後,請發佈完整的可編譯代碼。 – 2014-11-04 07:57:49
magicSquare函數中的'finalvec'隱藏'finalvec'成員變量。 – 2014-11-04 08:17:21