我得到“decleration没有声明任何[-fpermissive]错误”; 这是我的代码;
#ifndef CAMERA_H
#define CAMERA_H
#include "Vector.h"
#include <string>
using namespace std;
class Camera
{
private:
int id;
float position[3];
Vector gaze;
Vector up;
float left;
float right;
float bottom;
float top;
float near;
float far;
int type;
public:
Camera(int i,string c, string g, string u, string f, string t);
int getID() {return id; }
float* getPosition() { return position; }
Vector getGaze() { return gaze; }
Vector getUp() { return up; }
float getLeft() {return left;}
float getRight() {return right;}
float getBottom() {return bottom;}
float getTop() {return top;}
float getNear() {return near;}
float getFar() {return far;}
int getType() {return type;}
};
#endif // CAMERA_H
错误从“浮动附近”开始接下来的3行。
此错误的原因是什么,我该如何解决?
答案 0 :(得分:7)
将near
和far
替换为其他内容,至少是为了测试,例如: near_
和far_
:我怀疑你正在编写一些有趣的标题,它定义near
和far
什么都不是。在遥远的过去,这两个是在某些平台上用来处理不同大小指针的关键词。
如果要验证理论,请使用-E
选项处理源文件(您可能需要从编译行中删除其他选项,例如-c
):使用此选项编译器产生预处理的输出。如果你捕获它并在那里查看你的类,我很确定它不会包含成员名称。
答案 1 :(得分:-1)
我怀疑“near”和“far”是“Vector.h”或字符串中保留的名称。 将这些变量重命名为不同的应该可以解决您的问题。