Здравствуйте, Уважаемые эксперты! Спасибо всем кто откликнулся на мой прошлый вопрос. Теперь возник следующий. В классе А перегружены операторы: A operator=(const A& a); friend A operator +(const A& a,const A& b); Далее я наследую данный класс: class B: public A{ public: B():A(){}; }; И при таком наследовании получается следующая вещь: A a,b,c; ......... a=b+c;//работает B d,e,g; ......... d=e+g;//не работает d=e;//работает В чем проблема? Мне просто нужно, чтобы класс B был такой же как A просто добавленны некоторые функции. В приложении привожу описание классов. Заранее спасибо!
Здравствуйте, Вадим! Всё-таки придётся переобъявлять операторы для класса B. Дело в том, что компилятор, не зависимо от того, существуют ли в классе B переменные-члены, считает, что они есть. Поэтому вариант со сложением классов B не проходит, т.к. оператор сложения для класса A не може увилеть и правильно обработать новые переменные, даже если их нет. Аналогично и для оператора сравнения. Хотя здеь ситаация попроще - достаточно объявить конструктор копирования в классе B следующей формы: B( const B& b ) { ... }
Ответ отправлен: 19.10.2004, 09:07 Отправитель: Василевский Александр Отвечает bocha
Доброе время суток, Вадим! напиши operator A() ЗЫ: помоему в классе много друзей, а операторы желательно писать членами класса, а не друзьями, к тому же не понятно, как отличить прфиксные инкремент и декремент от постфиксных(эти всегда должныбыть членами) Ответ отправлен: 19.10.2004, 02:51 Отправитель: bocha
Вопрос № 1972
Здравствуйте, эксперты. Подскажите где можно найти разные классы для VC. А то для дельфей компонентов навалом, а для VC найти ничего не могу.
Здравствуйте, Eugene! Плохо ищите. CodeGuru Programmers Heaven Code Project и много много других. Ответ отправлен: 19.10.2004, 10:15 Отправитель: Gibbel Отвечает Morgion
Доброе время суток, Eugene! На вскидку- codeproject.com, codeguru.net, sources.ru, programmersheaven.com А ещё лучше- пиши сам %)%)%) Ответ отправлен: 19.10.2004, 13:46 Отправитель: Morgion Отвечает gAmUssA
Доброе время суток, Eugene! Я уже отвечал на этот вопрос. Навалом всего на www.codeproject.com и на www.codeguru.com . Вообще-то, сайты на английском, но думаю проблемы это не составит... Ответ отправлен: 19.10.2004, 17:10 Отправитель: gAmUssA Отвечает knick
О¦О+О¦Ъ-Ъ-О¦ О¦О¦О+Ъ-, Eugene! www.google.com.ru Ответ отправлен: 19.10.2004, 19:06 Отправитель: knick
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.