Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 23.05.2019
Сообщений: 3

Как создать массив указателей на объекты

23.05.2019, 17:49. Показов 837. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача состоит в создании многофайлового проекта. Каждый класс находится в отдельном файле. В файле main.cpp нужно создать массив указателей на объекты. Выдается такая ошибка:
C:\Users\User\Desktop\Polifile\main.cpp| 16|error: no match for 'operator=' (operand types are 'Estate' and 'Estate*')

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include "header_Estate.h"
#include "header_Cottage.h"
#include "header_Quarter.h"
 
using namespace std;
 
int main()
{
   // Cottage a(50000,170,2,"FFF");
   // Quarter b(15000,50,73);
    Estate e(5,10);
    Estate e1(100,66);
    const int size=2;
    Estate *arr=new Estate[size];
    arr[0]=(&e);
    arr[1]=(&e1);
    for(int i=0;i<size;i++)
        (arr+i)->Print();
    cout<<"MaxSpace: "<<max(arr[0].GetSpace(),arr[1].GetSpace());
    return 0;
    delete [] arr;
}
header_Estate.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED
 
 
class Estate
{
protected:
    int price;
    int space;
public:
    Estate(int price,int space);
    Estate();
    void Sale();
    void Print();
    int GetPrice();
    int GetSpace();
    void SetSpace(int space);
    void SetPrice(int price);
};
 
#endif // HEADER_H_INCLUDED
reals_Estate.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED
 
 
class Estate
{
protected:
    int price;
    int space;
public:
    Estate(int price,int space);
    Estate();
    void Sale();
    void Print();
    int GetPrice();
    int GetSpace();
    void SetSpace(int space);
    void SetPrice(int price);
};
 
#endif // HEADER_H_INCLUDED
header_Cottage.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef HEADER_COTTAGE_H_INCLUDED
#define HEADER_COTTAGE_H_INCLUDED
#include "header_Estate.h"
 
 
 
class Cottage : public Estate {
protected:
    int stages;
    std::string street;
public:
    Cottage(int price,int space,int stages,std::string street);
    Cottage();
    void Sale();
    void Print();
    int GetStages();
    void SetStages(int stages);
};
#endif // HEADER_COTTAGE_H_INCLUDED
reals_Cottage.cpp
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
#include <iostream>
#include "header_Cottage.h"
 
using namespace std;
    Cottage::Cottage(int price,int space,int stages,string street): Estate(price, space){
        this->price=price;
        this->space=space;
        this->stages=stages;
        this->street=street;
    }
    Cottage::Cottage(): Estate(){
        price=0;
        space=0;
        stages=0;
    }
    void  Cottage::Sale(){
        cout<<"Cottage sale"<<endl;
    }
    void  Cottage::Print(){
        cout<<"Cottage: "<<endl;
        cout<<"Price: "<<price<<endl;
        cout<<"Space: "<<space<<endl;
        cout<<"Stages: "<<stages<<endl;
        cout<<"Street: "<<street<<"\n\n";
    }
    int  Cottage::GetStages(){
        return stages;
    }
    void  Cottage::SetStages(int stages){
        this->stages=stages;
    }
header_Quarter.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef HEADER_QUARTER_H_INCLUDED
#define HEADER_QUARTER_H_INCLUDED
#include "header_Estate.h"
 
class Quarter:public Estate
{
protected:
    int numquarter;
public:
    Quarter(int price, int space, int numquarter);
    Quarter();
    void Sale();
    void Print();
    int GetNumquarter();
    void SetNumquarter(int numquarter);
};
#endif // HEADER_QUARTER_H_INCLUDED
reals_Quarter.cpp
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
#include <iostream>
#include "header_Quarter.h"
using namespace std;
    Quarter::Quarter(int price, int space, int numquarter): Estate(price, space){
        this->price=price;
        this->space=space;
        this->numquarter=numquarter;
 
    }
    Quarter::Quarter(): Estate(){
        price=0;
        space=0;
        numquarter=0;
    }
    void Quarter::Sale(){
        cout<<"Quarter sale"<<endl;
    }
    void Quarter::Print(){
        cout<<"Quarter"<<endl;
        cout<<"Price: "<<price<<endl;
        cout<<"Space: "<<space<<endl;
        cout<<"Numquerter: "<<numquarter<<"\n\n";
    }
    int Quarter::GetNumquarter(){
        return numquarter;
    }
    void Quarter::SetNumquarter(int numquarter){
        this->numquarter=numquarter;
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.05.2019, 17:49
Ответы с готовыми решениями:

Создать массив указателей на объекты класса, описывающего насекомых
Создать массив указателей на объекты класса, описывающего насекомых (количество ног, наличие крыльев, цвет, название.). Создать новый...

Виртуальные функции (создать массив указателей на объекты трех классов)
Задание: создать массив указателей на объекты трех классов. Метод Show почему-то не переопределяется. В данном коде вводится 3 элемента в...

Как понять: массив указателей на объекты классов?
если приведете пример буду рад.

2
 Аватар для Вадим Тукаев
310 / 291 / 116
Регистрация: 23.01.2018
Сообщений: 933
24.05.2019, 04:43
В строке 15 создается массив объектов типа Estate, а не указателей на них. Должно быть Estate **arr=new *Estate[size];
А еще строка 22 никогда не выполнится.
0
0 / 0 / 0
Регистрация: 23.05.2019
Сообщений: 3
24.05.2019, 12:38  [ТС]
Исправил, теперь выдает такую ошибку:
C:\Users\User\Desktop\Polifile\main.cpp| 15|error: expected type-specifier before '*' token|
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2019, 12:38
Помогаю со студенческими работами здесь

Массив указателей на объекты
Доброго времени суток. В моем коде базовый класс имеет два наследника. Четвертый класс содержит динамический массив указателей на...

Динамический массив указателей на объекты
вообщем была тут на форуме задача, в подробности вдаваться не буду, смысл сейчас заключается в том, чтобы создавать в цикле объекты, и в их...

Массив указателей на объекты подклассов
Доброго времени суток всем!!! Проф задал написать парсер простых математических выражений с использованием скобок. Код не должен...

Массив указателей на объекты разных типов
Здравствуйте. К примеру, есть такая конструкция (приведена часть кода) // --- enum MyClasses /*для индексации по классам в...

Динамический массив указателей на объекты класса
Добрый вечер! Нужна помощь У меня имеется класс STROKA(вроде уже готовый,и все хорошо) Только вот никак не могу понять, как создать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru