теперь я получаю сообщение об ошибке:
error: ‘oset<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::Comparator’ is an inaccessible base of ‘CaseSensitive’
Я пытался выяснить проблему в течение нескольких часов, но безрезультатно, надеюсь, один из вас, ребята, сможет мне помочь.соответствующий код приведен ниже:
template <class T>
class oset;
template <class T>
class oset {
....
public:
class Comparator {
public:
virtual ~Comparator() {}
virtual int compare(T, T) = 0;
};
private:
Comparator *comp;
....
public:
// new empty set:
oset(Comparator*);
....
};
....
class CaseSensitive : oset<string>::Comparator
{
public:
virtual ~CaseSensitive(){}
virtual int compare(string str1, string str2)
{
return strcmp(str1.c_str(), str2.c_str());
}
};
....
int main() {
oset<string>::Comparator *cs = new class CaseSensative();
//error in line above
....
}
Я пытаюсь создать абстрактный объект Comparator, чтобы я мог определять пользовательские типологические порядки для сортировки по oset.
Спасибо!