c ++类标题 - “错误:在'之前预期的非限定标识')'标记”

时间:2014-07-31 22:59:46

标签: c++

我必须忽视一些简单的事情,但是我在很短的时间内做了很多事情,以至于我可能只是过度劳累。无论如何,这是我收到错误的地方。

#include<iostream>
#include<algorithm>

#ifndef Numbers
#define Numbers

class Numbers{
    public:
  Numbers(){capacity=5; used=0; data = new unsigned long[capacity];}

它只是Numbers类的构造函数。该课程的私人区域如下。

    private:
  unsigned long *data;
  std::size_t used;
  std::size_t capacity;
};

同样,这可能是我看不到的简单事情,我也确定其他人也会遇到问题。

编辑:错误如下

numbers.h:9:11: error: expected unqualified-id before ')' token
Numbers(){capacity=5; used=0; data = new unsigned long[capacity];}
        ^

1 个答案:

答案 0 :(得分:3)

运行预处理器,这个:

#ifndef Numbers
#define Numbers

class Numbers{
    public:
  Numbers(){capacity=5; used=0; data = new unsigned long[capacity];}

成为

class {
    public:
  () {capacity=5; used=0; data = new unsigned long[capacity];}

您的类名与include-guard fencepost宏相同。由于Numbers将替换为.. nothing ..您没有类名,也没有构造函数名。不要那样做。

尝试:

#ifndef MYAPP_NUMBERS_H
#define MYAPP_NUMBERS_H

#include <iostream>
#include <algorithm>

class Numbers
{
public:
    Numbers()
    {
        capacity=5; 
        used=0; 
        data = new unsigned long[capacity];
    }

...etc...