[英]error C2143: missing syntax error: missing ';' before '*'
以下代碼有問題:
我創建了一個Camera類。
class Camera
{
private:
public:
vec3 Position;
vec3 Forward;
vec3 Up;
float speed;
float angleSpeed;
// Constructor with vectors
void newCamera(void);
Camera();
~Camera(void);
};
這是Camera類的.cpp代碼。
void Camera::newCamera(void)
{
Position = vec3(0.0f, 2.0f, 0.0f);
Forward = vec3(0.0f, 0.0f, -1.0f);
Up = vec3(0.0f, 1.0f, 0.0f);
speed = 0.2f;
angleSpeed = 0.3f;
}
Camera::Camera()
{
}
Camera::~Camera(void)
{
}
我正在另一個類中實例化它。
class Surface
{
private:
public:
Camera * cam;
Surface();
~Surface(void);
};
這是Surface類的.cpp代碼。
Surface::Surface()
{
cam->newCamera();
};
Surface::~Surface(void)
{
};
我目前收到一條錯誤消息:“錯誤C2143:語法錯誤:缺少';' 在“ *”之前”
您的表面課程不知道Camera
是什么。 您需要轉發聲明它(因為它是指針或引用類型;減少編譯時間)並將頭文件包括在源文件中; 同樣,您不能從空實例調用方法:
表面類定義:
#ifndef SURFACE_H
#define SURFACE_H
class Camera;
class Surface
{
private:
public:
Camera * cam;
Surface();
~Surface(void);
};
#endif
表面類的實現:
#include "Surface.h"
#include "Camera.h"
Surface::Surface() : cam(new Camera)
{
cam->newCamera();
};
Surface::~Surface(void)
{
delete cam;
cam = nullptr; //Not really needed in this case, but a good habit none-the-less
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.