我正在尝试实现从一个主类派生的一些类,但我不断收到这些错误,我不知道它们来自哪里。 这是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
相关。
答案 0 :(得分:2)
这是猜测,因为我没有看到您的错误消息或包含这些标题的文件。
在filter.h的第virtual bool apply(Image& img, const string filtername);
行中,范围是string
吗?我假设您的意思是std::string
,因为您包含<string>
,但您不会将其导入当前命名空间。尝试将string
替换为std::string
。