因此,我正致力于创建一个由矩形构成的立方体,这些矩形由点组成。我做了你永远不应该做的一件事,在第一次运行之前写完整件事。以下是一个精简版本,用于发现第一个错误。
这是在visual studio中,所以这可能是严格意义上的视觉工作室问题。我不确定。我还没有在fedora中测试过它来验证。
这里是Point_class.h:
#pragma once
#ifndef POINT_H
#define POINT_H
class PointType
{
private:
int x;
int y;
int z;
public:
PointType(int i=0, int j=0, int k=0);
void get_point(int& i, int &j, int& k) const;
void set_point(int i, int j, int k);
};
#endif /* POINT_H */
这里是Point_class.cpp:
#include "stdafx.h"
#include "Point_class.h"
PointType::PointType(int i, int j, int k)
{
x = i;
y = j;
z = k;
}
void PointType::get_point(int& i, int &j, int& k) const
{
i = x;
j = y;
k = z;
}
void PointType::set_point(int i, int j, int k)
{
x = i;
y = j;
z = k;
}
这是主要的cpp文件:
#include <iostream>
#include "Point_class.h"
#include "stdafx.h"
int main()
{
PointType p1;
PointType p2(8, 0, 0);
PointType p3(0, 9, 0);
PointType p4(0, 0, 6);
return 0;
}
我得到的第一个错误是主程序中第10行的C2065未声明标识符,第二个错误是同一行上的错误2146(预期&#39 ;;&#39;在标识符p1之前)。所有其他错误只是那个错误的重复。
点类的头文件和cpp文件都已添加到源文件中。我不确定Visual Studio中的编译是如何工作的(我认为一旦添加源文件就会自动完成。我知道如果我使用的是终端,我只需要在使用g ++时指定这些文件。任何指针都会有所帮助。
编辑:删除&#34; #include&#34; stdafx.h&#34;&#34;超出头文件。重新确定,但没有变化。
答案 0 :(得分:0)
所以我找到了错误的来源。我注意到错误列表中的一个错误在最后指向point_class实现文件,说明了达到文件末尾的内容。所以我添加了#include&#34; stdafx.h&#34;到包含列表的末尾。这导致了一系列新的错误,当我将include的位置更改为第一行时,它会立即消失,同时还有原始错误。这促使我试着把#include&#34; stdafx.h&#34;在主文件的开头,导致正常运行的程序。
谢谢Raxvan,你有点想让我尝试移动那条线。