Re[4]: наследование или...
От: Oleg A. Bachin Украина  
Дата: 09.08.04 14:55
Оценка:
Здравствуйте, Glоbus, Вы писали:

повторюсь, я только учусь...

можно вот здесь уточнить?

G>
G>template <typename T>
G>class nullable
G>{
G>public:

G>    bool operator == (const T &other) const // 1*
G>    {
G>        if (this.is_null || other.is_null) // 2*
G>            throw std::logic_error("null_value_compare");
G>        return m_Value == T // 3*
G>    }
G>


1. (const T &other) — это значит что мы сравниваем с T? тогда у него нет ф-ции is_null. Наверное всетаки (const nullable<T> &other)

2. я так понял, что this имеет тип указатель на nullable<T>. тогда может так: this->is_null ?
3. по-моему тут явная опечатка, но я не могу все равно написать эту строку...

я сделал ф-цию value, которая возвращает const T &.
 const T & value() const
    {
        return value_;
    }

и пытаюсь написать вот так:
    template <typename T>
    bool operator==(nullable<T> const& other)
    {
        if (this->is_null() || other.is_null()) 
            throw null_value_compare("null_value_compare");
        return (this->value_ == other.value());
    }


на что получаю:

error C3767: '==' matching function is not accessible

Best regards,
Oleg A. Bachin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.