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

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

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

Перезагрузка оператора "=" для двух классов - C++

02.06.2014, 22:35. Просмотров 241. Ответов 1
Метки нет (Все метки)

Есть такой исходник с двумя классами, но не работает перегрузка оператора "="

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include <iostream>
using namespace std;
 
class info_people{
    
protected: 
    char*name;
    int age;
    bool sex;
public:
    info_people(){}
    info_people(char name[],int age,bool sex){ this->age=age;this->name=name; this->sex=sex;}
 
    char *getN(){   return name; }
    int getAge(){   return age; }
    bool getSex(){  return sex; }
};
 
class info_employ:public info_people{
private:
    int money;
 
public: info_employ(char name[],int age,bool sex,int money){ this->age=age;this->name=name; this->sex=sex; this->money=money;}
 
info_employ& operator=( info_people &p){
    this->name=p.getN();
    this->age=p.getAge();
    this->sex=p.getSex();
    return *this;
}
 
};
 
 
 
 
int main()
{
    
    info_people p1=info_people("Egor",22,1);
 
    info_employ em=p1+100;// +100 в переменную money
 
    return 0;
}
Как исправить?
задача в том, чтобы данные из класса info_people скопировать в info_employ и к тому же дописать после оператора + значение в переменную money
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2014, 22:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перезагрузка оператора "=" для двух классов (C++):

Перегрузка оператора "<<" для вывода пользовательских классов - C++
Всем доброго времени суток. Пытаюсь сделать перегрузку оператора &quot;&lt;&lt;&quot; для того, чтобы можно было выводить объекты пользовательского класса...

Описать класс "Контейнер" как объект, предназначенный для транспортировки классов "Строительных блоков" - C++
1. Опишите класс &quot;Строительный блок&quot;, описывающий габариты и массу блока прямоугольной формы. Данные класса: Габариты, масса. Методы...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата" - C++
Само по себе понятие &quot;зарплата&quot; не особенно конкретное: оно включает и почасовую, и ставочную зарплату, и комиссионные, и процент с продаж....

Проблема с перегрузкой операторов "+" и "+=" для классов Point и Circle - C++
Есть класс Point (элементы данных x,y) и класс Circle (элементы данных р(типа Point),r). Их заголовочные файлы: class Point { ...

Описание классов. Классы "Шар" и "Ящик для шаров" - C++
1.Опишите класс &quot;шар&quot;, описывающий габариты и вес. Данные класса: радиус шара,вес. Методы класса: должны обеспечить минимальную...

Описание двух "пересекающихся" классов - C++
Как сделать два класса в которых методы используют параметры с типами друг-друга class c1 { public: int param; int...

1
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.06.2014, 23:42 #2
Оператор присваивания должен быть объявлен как нестатическая функция-член класса.
Цитата Сообщение от HuCCaH Посмотреть сообщение
C++
1
info_employ em=p1+100;// +100 в переменную money
p1 является объектом info_people, а в нем нет никаких money.
Короче говоря, Вам для начала с интерпретацией типов данных разобраться надо, а не операторы перегружать.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 23:42
Привет! Вот еще темы с ответами:

Перегрузка оператора "++" и "--" в чем может быть причина нарушение прав доступа? - C++
Вот такой вот код #include &lt;iostream&gt; class d { private: int size ; char *n; public: d()

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Перегрузка оператора "++" и "--" , компилирует, но при запуске программы - ошибка - C++
#include &lt;iostream&gt; #include&lt;ctime&gt; #include&lt;stdio.h&gt; #include&lt;locale.h&gt; #include &lt;windows.h&gt; #include &lt;conio.h&gt; ...

Реализовать связь классов "телефонная книга" и родительский класс "телефонный номер" - C++
Суть проблемы:есть дочерний класс &quot;телефонная книга&quot; и родительский класс &quot;телефонный номер&quot;. В классе &quot;телефонная книга&quot; к заданной...


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

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

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