我有一个由source.c:这些课程为什么不完整?
#include "image.h"
#ifndef SOURCE_H
#define SOURCE_H
class Source
{
private:
Image* img;
public:
virtual void Execute()=0;
Image* GetOutput();
};
#endif
Image* Source::GetOutput()
{
return this->img;
}
和sink.C.
#include "image.h"
#ifndef SINK_H
#define SINK_H
class Sink
{
private:
Image* img1;
Image* img2;
public:
void SetInput(Image* input1);
void SetInput2(Image* input2);
};
#endif
void Sink::SetInput(Image* input1)
{
this->img1 = input1;
}
void Sink::SetInput2(Image* input2)
{
this->img2 = input2;
}
我有我想从源库继承filter.h:
#include "image.h"
#include <iostream>
#include <stdlib.h>
class Source;
class Sink;
class Filter : Source, Sink
{
public:
Filter() {std::cout << "Constructing filter." << std::endl;}
};
然而,编译器给我的无效使用不完全类型“类源”和“类的错误水槽'。我也得到这些相同类的前向声明的错误。这些类最初的功能是直接在public
中定义的,所以我将它们移出了,但这对此没有帮助。明确地将Source和Sink设置为public也没有帮助。这是怎么回事?
+1用于发现私有继承 – mjs