为什么这会一直出错?

时间:2012-04-01 22:27:00

标签: iphone c++ objective-c ios

我正在尝试为游戏编写一些内容,但我不断收到8行的错误消息,上面写着“预期'=',',',';','asm'或'属性< / em>'之前'插入它在这里谈论的内容“”

它烦人,我无法弄清楚为什么。这是代码:

class Vec2 **"error here before Vec2"**
{
public:

float X, Y;

Vec2() {}
Vec2(const float &x, const float &y) :
  X(x),
  Y(y)
{
};

float &operator[] (const int &index)
{
    switch (index)
    {
    case 0:
        return X;
    case 1:
        return Y;
    }

    throw Exceptions::IndexOutOfRange();
};

float *operator & ()
{
    return &X;
};
};

template<> class TypeInfo<Vec2> : public TypeInfo_Atomic<Vec2> {}; **"error here before <"**


class Vec3 **"error here before Vec3"**
{
public:

float X, Y, Z;

Vec3() {} 
Vec3(const float &x, const float &y, const float &z) :
  X(x),
  Y(y),
  Z(z)
{
};

float &operator[] (const int &index)
{
    switch (index)
    {
    case 0:
        return X;
    case 1:
        return Y;
    case 2:
        return Z;
    }

    throw Exceptions::IndexOutOfRange();
};

float *operator & ()
{
    return &X;
};
};

template<> class TypeInfo<Vec3> : public TypeInfo_Atomic<Vec3> {}; **"error here before <"**

class Vec4 **"error here before Vec4"**
{
public:

float X, Y, Z, W;

Vec4() {} 
Vec4(const float &x, const float &y, const float &z, const float &w) :
  X(x),
  Y(y),
  Z(z),
  W(w)
{
};  

float &operator[] (const int &index)
{
    switch (index)
    {
    case 0:
        return X;
    case 1:
        return Y;
    case 2:
        return Z;
    case 3:
        return W;
    }

    throw Exceptions::IndexOutOfRange();
};

float *operator & ()
{
    return &X;
};
};

template<> class TypeInfo<Vec4> : public TypeInfo_Atomic<Vec4> {}; **"error here before <"**



class Color **"error here before Color"**
{
public:

byte R, G, B, A;

Color() {}
Color(byte r, byte g, byte b, byte a) :
  R(r),
  G(g),
  B(b),
  A(a)
{
};

byte *operator & ()
{
    return &R;
};

static const Color      Red,
                        Green,
                        Blue,
                        Yellow,
                        White,
                        Black;
};

template<> class TypeInfo<Color> : public TypeInfo_Atomic<Color> {}; **"flag here before <"**

总共有8个错误。非常感谢帮助!

2 个答案:

答案 0 :(得分:3)

如果您将objective-c和c ++代码放入同一个文件中,则需要使用.mm文件扩展名。

http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/_index.html

答案 1 :(得分:2)

它认为您的模块不是C ++。你给文件后缀了什么?