0
所以我有一個類Coord,它是一個屏幕位置(x,y)和一個類Grid,應該是這些Coords中的13個數組,從文本文件讀入。 我碰到的錯誤是錯誤C2512:'Coord':沒有合適的默認構造函數可用grid.h 26 儘管我有兩個Coord.h構造函數,但我認爲它會使用輸入流?有點在這裏從其他來源盜取零碎和學習,所以請原諒我,如果我忽略了明顯的東西。VS 2008 C++對象數組
Coord.h
# pragma once
// class for whole screen positions
#include "DarkGDK.h"
#include <istream>
using std::istream;
class Coord
{
float cx, cy;
public:
Coord(float x, float y) : cx(x), cy(y) {} //set components directly
Coord(istream& input); //set from input
float x()
{
return cx;
}
float y()
{
return cy;
}
Coord operator+(const Coord& c);
};
Coord::Coord(istream& input)
{
input >> cx >> cy;
}
Coord Coord::operator+(const Coord& c)
{
return Coord(cx+c.cx, cy+c.cy);
}
Grid.h
# pragma once
// class for the grid array
#include "DarkGDK.h"
#include "Coord.h"
#include <fstream>
#include <iostream>
using namespace std;
const int N = 13;
const char filename[] = "grid.txt";
class Grid
{
Coord gridpos[N];
public:
Grid();
void FillGrid(); //read-in coord values
};
Grid::Grid()
{
FillGrid();
}
void Grid::FillGrid()
{
int i;
ifstream filein(filename, ios::in); //file for reading
for(i=0; !filein.eof(); i++)
{
filein >> gridpos[i].x >> gridpos[i].y; //read in
filein.close();
}
}
任何幫助表示讚賞,感謝。
你有一個很大的誤區與地方如何構造服用'istream的&'可以輸入初始化的對象。 'Coord gridpos [N];'表示在你的構造函數體輸入之前,所有這些都是默認初始化的。 – chris 2013-04-26 23:49:16
對不起,不知道我在想什麼來得出我所做的結論,哈哈。 – DarkMalice 2013-04-27 01:05:44