我刚从 Java 和 Python 世界来到 C++ 世界,在尝试从const
类的公共函数中获取值时遇到了问题。
我有一堂课如下:
class CMDPoint
{
public:
CMDPoint();
CMDPoint(int nDimensions);
virtual ~CMDPoint();
private:
int m_nDimensions; // the number of dimensions of a point
float* m_coordinate; // the coordinate of a point
public:
const int GetNDimensions() const { return m_nDimensions; }
const float GetCoordinate(int nth) const { return m_coordinate[nth]; }
void SetCoordinate(int nth, float value) { m_coordinate[nth] = value; }
};
最终,我希望将所有sclusterPoint
写入clusterPointArray
文件中。但是,现在我只是用第一个测试它( clusterPoint
因此,GetCoordinate(0)
)。
ofstream outFile;
outFile.open("C:\\data\\test.txt", std::ofstream::out | std::ofstream::app);
for (std::vector<CMDPoint> ::iterator it = clusterEntry->clusterPointArray.begin(); it != clusterEntry->clusterPointArray.end(); ++it)
{
outFile << ("%f", (*it).GetCoordinate(0)); // fails
outFile << " ";
}
outFile << "\n";
outFile.close();
问题是我只看到" "
文件中的。没有写入坐标。从 获取值时我做错了什么const float GetCoordinate(int nth)
吗?