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

Указатель на динамический массив объектов - C++

Восстановить пароль Регистрация
 
Reinaldo
Сообщений: n/a
13.06.2010, 22:45     Указатель на динамический массив объектов #1
Что я делаю неправильно?

1. Объявление класса №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
#include <conio.h>
#include <dos.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
 
#define inl " ## "
 
class plane
{
  int altitude, speed, AoA, AiA, coordx, coordy;
  char *type;
 
  public:
  int thrust, rand;
 
  void chg_thrust();
  void chg_AiA();
  void chg_AoA();
  void chg_speed();
  void chg_altitude();
  void chg_coords();
 
  char* gettype() {return type;};
  int getalt() {return altitude;};
  int getspeed() {return speed;};
  int getAoA() {return AoA;};
  int getAiA() {return AiA;};
  int getx() {return coordx;};
  int gety() {return coordy;};
 
  plane() {speed=300; altitude=500; type="Boeing";
  AoA=0; AiA=0; coordx=0; coordy=0; thrust=0;};
  plane(int sp, int alt, char *tp);
  ~plane() {};
 
};
2. Объявление класса №2.
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
class controller
{
  int number, i;
 
  public:
  plane *objects;
 
  void initnewobj();
  int control();
  controller();
  ~controller() {delete objects;};
} computer;
 
controller::controller()
{
  number=0;
  objects=NULL;
  for (i=0;i<10;i++)
  {
    objects=new plane;
    number++;
  }
}
 
int controller::control()
{
  for (i=0;i<number;i++)
  {
    cout
    << objects[i].gettype() << inl << objects[i].getspeed() << inl
    << objects[i].getalt() << inl << objects[i].getAoA() << inl
    << objects[i].getAiA() << inl << objects[i].getx() << inl
    << objects[i].gety() << inl << endl;
  }
}
Ошибок не выдает, и при обращении к objects[0] все происходит корректно, но при обращении к objects[i], i!=0 - выдает совершенно левые наборы символов, причем самый простой случай - это, например, 18347 вместо 300 (в целочисленных полях), более сложный - полный экран собак ( "@" ), самый сложный - "выдержка" из какой-то досовской инструкции по применению оператора FOR в batch-файлах, на русском языке, который обычно вообще-то не отображается, если попытаться вывести его через программу (последние два варианта - в том месте, где выводится строка type.

HELP PLEASE! Если кто прямо сегодня подскажет, в чем проблема, с меня пиво при встрече. хД
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2010, 22:45     Указатель на динамический массив объектов
Посмотрите здесь:

Динамический массив объектов C++
C++ динамический массив объектов
Указатель на двухмерный динамический массив C++
Динамический массив и указатель на указатель C++
C++ Динамический массив объектов
Нужно сделать указатель на динамический двумерний массив C++
C++ Динамический массив и указатель
C++ Динамический массив динамических объектов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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