Closed. This question is not reproducible or was caused by typos。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
7年前关闭。
Improve this question
因此,我有一个抽象父类(super class)ReadWords和3个子类,FirstFilter,SecondFilter和ThirdFilter。
Readwords.h:
FirstFilter.h:
FirstFilter.cpp:
在主要功能中,我创建了3个类型为FirstFilter,SecondFilter和ThirdFilter的对象,并且具有以下内容:
我为所有3个对象收到此错误:
有任何想法吗 ?告诉我您是否也需要ReadWords.cpp,我没有写出来,因为它更大。
其中isNextWord用作函数指针
写
其中isNextWord用作函数调用
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
7年前关闭。
Improve this question
因此,我有一个抽象父类(super class)ReadWords和3个子类,FirstFilter,SecondFilter和ThirdFilter。
Readwords.h:
#ifndef _READWORDS_H
#define _READWORDS_H
using namespace std;
#include <string>
#include <fstream>
#include <iostream>
#include <cstdlib>
class ReadWords
{ public:
ReadWords(char *filename);
void close();
string getNextWord();
bool isNextWord();
virtual bool filter(string word)=0;
string getNextFilteredWord();
private:
ifstream wordfile;
bool eoffound;
string nextword;
string fix(string word);
};
#endif
FirstFilter.h:
#ifndef _FIRSTFILTER_H
#define _FIRSTFILTER_H
using namespace std;
#include <string>
#include <fstream>
#include <iostream>
#include "ReadWords.h"
class FirstFilter: public ReadWords
{ public:
FirstFilter(char *filename);
virtual bool filter(string word)
{
for(int i=0; i<word.length(); i++){
if (word[i]>='A'&&word[i]<='Z') return true;
}
return false;
}
};
#endif
FirstFilter.cpp:
using namespace std;
#include "FirstFilter.h"
FirstFilter::FirstFilter(char *filename)
:ReadWords(filename)
{
}
在主要功能中,我创建了3个类型为FirstFilter,SecondFilter和ThirdFilter的对象,并且具有以下内容:
FirstFilter f1(file);
while(f1.isNextWord){
//etc
}
我为所有3个对象收到此错误:
error: cannot convert 'ReadWords::isNextWord' from type 'bool (ReadWords::)()'
to type 'bool'|
有任何想法吗 ?告诉我您是否也需要ReadWords.cpp,我没有写出来,因为它更大。
最佳答案
代替
while(f1.isNextWord){
其中isNextWord用作函数指针
写
while(f1.isNextWord() ){
其中isNextWord用作函数调用
关于c++ - C++无法从bool(class)类型转换为bool ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21071181/
10-11 10:31