错误C2146和错误C4430 Visual Studio 2013 C ++

时间:2014-07-05 17:50:50

标签: c++

我正在尝试实现从一个主类派生的一些类,但我不断收到这些错误,我不知道它们来自哪里。 这是de erros:

错误1错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int

错误6错误C2146:语法错误:在标识符'filtername'

之前缺少','

以下是代码:

Filter.H:

#ifndef _FILTER_H_
#define _FILTER_H_


#include <iostream>
#include <string>
#include "Image.h"

class Filter
{
public:
    Filter();
    ~Filter();
    virtual bool apply(Image& img, const string filtername);

};
#endif /*FILTER_H_*/

FilterGreen.H:

#pragma once
#include "Filter.h"
#include "Image.h"


using namespace std;

class FilterGreen : public Filter
{
public:

    FilterGreen();
    ~FilterGreen();
    bool apply(Image& img, const string filtername);
};

image.h的:

#ifndef __Image_H__
#define __Image_H__

enum ImageType
{
    ImageType_TYPE_RGB8,
    ImageType_TYPE_RGB24,
    ImageType_TYPE_RGB32
};


class Image
{
public:

    int width, height;
    ImageType type;
    unsigned char* data;
    unsigned int size;

    Image();
    ~Image();
};
#endif

该错误与virtual bool apply(Image& img, const string filtername);文件中的行filter.h相关。

1 个答案:

答案 0 :(得分:2)

这是猜测,因为我没有看到您的错误消息或包含这些标题的文件。

在filter.h的第virtual bool apply(Image& img, const string filtername);行中,范围是string吗?我假设您的意思是std::string,因为您包含<string>,但您不会将其导入当前命名空间。尝试将string替换为std::string