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

Ошибка в создании массива объектов - C++

Восстановить пароль Регистрация
 
Соловьёв_Егор
 Аватар для Соловьёв_Егор
58 / 58 / 38
Регистрация: 17.02.2013
Сообщений: 227
14.05.2014, 21:45     Ошибка в создании массива объектов #1
Есть класс Circle, в котором определены переменные для координат Х и У и радиуса окружности (здесь всё правильно, вроде бы). При компиляции на класс и реализацию компилятор не ругается (Dev-C++), а вот в основной программе массив, похоже, не создаётся.
Это класс:
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
#if !defined CIRCLE_H
#define CIRCLE_H
#include <iostream>
using namespace std;
class Circle{
    private:
        double coordX, coordY, radius;
    public:
        Circle();
        ~Circle();
        void set_X();
        void set_Y();
        void set_Rad();
        double get_X();
        double get_Y();
        double get_Rad();
};
inline void Circle::set_X(){
    double x;
    cout<<"\nEnter coordinate X: ";
    cin>>coordX;
}
 
inline void Circle::set_Y(){
    cout<<"\nEnter coordinate Y: ";
    cin>>coordY;
}
 
inline void Circle::set_Rad(){
    cout<<"\nEnter radius: ";
    cin>>radius;
}
 
inline double Circle::get_X(){
    return coordX;
}
 
inline double Circle::get_Y(){
    return coordY;
}
 
inline double Circle::get_Rad(){
    return radius;
}
#endif
Реализация:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "circle.h"
Circle::Circle():{
    set_X();
    set_Y();
    set_Rad();
}
 
Circle::~Circle(){
}
И основная программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include "circle.h"
using namespace std;
int main(){
    int numOfCircles;
    cout<<"How many circles do you want?: ";
    cin>>numOfCircles;
    //Circle circles[numOfCircles];
    cout<<numOfCircles;
    /*for (int counter=0;counter<numOfCircles;counter++){
        circles[counter]=circles[counter]();
        cout<<"\n"<<circles[counter].get_X()<<" "<<circles[counter].get_Y()<<" "<<circles[counter].get_Rad()<<"\n";
    }*/
    return 0;
}
Сначала думал, что с размером вводимым что-то не так, но при выводе на экран всё нормально. А вот закомментированные строки не работают.

Добавлено через 1 час 49 минут
Кто-нибудь может подсказать, что неправильно? Почему в момент объявления массива всё падает?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2014, 21:45     Ошибка в создании массива объектов
Посмотрите здесь:

C++ Ошибка при создании двумерного массива из объектов производных классов
Stack overflow при создании большого количества объектов C++
Ошибка при создании нового массива C++
Ошибка при создании массива C++
C++ Ошибка при создании динамического массива.
Ошибка в создании нового массива C++
C++ Box2d лаги при создании более трех динамик объектов
Нехватка памяти при создании динамических объектов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
14.05.2014, 22:01     Ошибка в создании массива объектов #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Соловьёв_Егор Посмотреть сообщение
Кто-нибудь может подсказать, что неправильно?
Если размер массива не известен на момент компиляции, то выделять память надо динамически, т.е.:
C++
1
Circle* circles = new Circle[numOfCircles];
Цитата Сообщение от Соловьёв_Егор Посмотреть сообщение
Почему в момент объявления массива всё падает?
Бутерброд на пол?
Yandex
Объявления
14.05.2014, 22:01     Ошибка в создании массива объектов
Ответ Создать тему
Опции темы

Текущее время: 00:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru