我是C ++中的noob,我有以下头文件(Header.h)
#ifndef HEADER_H
#define HEADER_H
#include <iostream>
using namespace std;
class Predicate
{
public:
virtual void print() = 0;
};
class UnaryIntegerPredicate : public Predicate
{
public:
virtual void print();
};
class BiaryIntegerPredicate : public Predicate
{
public:
virtual void print();
};
#endif
在另一个单独的.cpp文件(Source.cpp)中,我尝试实现了print方法,但得到了一个&#34;期望一个表达式&#34;错误。
#include "stdafx.h"
#include "Header.h"
#include <iostream>
using namespace std;
UnaryIntegerPredicate::UnaryIntegerPredicate() : Predicate()
{
virtual void print()
{
cout << "int : boolean" << endl;
}
}
这里有什么问题,谢谢!
答案 0 :(得分:3)
我发现你可能来自Java背景。你需要的是
void UnaryIntegerPredicate::print()
{
cout << "int : boolean" << endl;
}
你不需要那些东西。由于您已在标题中声明UnaryIntegerPredicate
派生自Predicate
,因此您不会在实施文件中再次提及此问题。您通过在方法名称前加上上面显示的类名称来显示您正在编写的print方法是UnaryIntegerPredicate
类的print方法。
您也不需要cpp文件中的virtual
关键字,因为它已在头文件中指定。