Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
joemcjoe
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 26
#1

Перегрузка оператора = - C++

15.05.2014, 16:14. Просмотров 254. Ответов 2
Метки нет (Все метки)

Есть некий класс. И два класса-наследника. Надо перегрузить оператор =, к тому же в дочерних классах вызывать перегрузку в базовом классе. Ошибка кода в том, что нельзя перегрузить оператор в классе, где есть чистая виртуальная функция.
C++
1
2
3
4
5
6
7
8
9
10
11
12
class CDyplSpecialist
{
protected:
    string name;
    string surname;
    string spec;
public:
    CDyplSpecialist() ;
    virtual void info()=0;
    virtual void personaldata();
    CDyplSpecialist operator = ( CDyplSpecialist& obj);
};
C++
1
2
3
4
5
6
7
class CDeveloper : public CDyplSpecialist
{
public:
    CDeveloper(string NAME, string SURNAME);
    void info();
 
};
C++
1
2
3
4
5
6
class CSysAdmin : public CDyplSpecialist
{
public:
    CSysAdmin(string NAME, string SURNAME);
    void info();
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2014, 16:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка оператора = (C++):

Перегрузка оператора += - C++
У меня имеется структура и метод, который вызывается след образом: A.plus_and_minus(B); Есть огромное желание перегрузить функцию += ,...

Перегрузка оператора = - C++
помогите создать перегруженный оператор = в классе Х, который будет копировать содержание строки S1 в S2.

Перегрузка оператора = - C++
Как перегрузить оператор = для char ?

Перегрузка оператора - C++
Подскажите пожалуйста, способ перегрузки операторов >= и <= в следующей строке if ( ob.str >= '0' && ob.str <= '9' )Мой вариант не...

Перегрузка оператора != - C++
Помогите разобраться с перегрузкой оператора != есть класс, в котором, в разделе private объявлен указатель на массив std::string *str; ...

перегрузка оператора () - C++
Вопрос заключается в следующем: - Что собой представляет перегружаемый оператор()? - Как его перегрузить? ( обычные операторы тип ++ и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
15.05.2014, 16:30 #2
почему это нельзя перегрузить? Можно! только пусть он не CDyplSpecialist возвращает, а что-нибудь другое!
kupnu4
26 / 26 / 9
Регистрация: 03.05.2013
Сообщений: 71
15.05.2014, 16:40 #3
проблема в том, что ты не можешь создавать объект чисто виртуального класса(в котором есть чисто виртуальная функция). А следовательно и не можешь его вернуть. Согласен с Kuzia domovenok. Попробуй возвращать что-нибудь другое.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2014, 16:40
Привет! Вот еще темы с ответами:

Перегрузка оператора == - C++
Пытаюсь перегрузить оператор == . Делаю так: В классе: class cData // класс дата { int year; // год short mounth; //...

Перегрузка оператора += - C++
Создал класс дробь. Пытаюсь перегрузить оператор += (или -=, *=, /=) А компилятор выдаёт ошибку 'drob operator+=(drob&)' must take...

Перегрузка оператора [] - C++
Сделал простой аналог auto_ptr для дин. массива. Файл #ifndef ARRAY_PTR_GUARD #define ARRAY_PTR_GUARD template< class Ty_ > ...

Перегрузка оператора *= - C++
как для заданного класса point перегрузить оператор *= всеми возможными способами (член класса, друг класса)? P.S. оператор *= должен...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru