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

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

Войти
Регистрация
Восстановить пароль
 
Reinaldo
Сообщений: n/a
#1

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

13.06.2010, 22:45. Просмотров 577. Ответов 0
Метки нет (Все метки)

Что я делаю неправильно?

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++
Всем привет. Пытаюсь понять тему динамических массивов. Прошу помочь разобраться в следующем: Есть код (пример): int num = 5;...

Умный указатель и динамический массив - C++
Здравствуйте! Есть проблема со следующим заданием. Есть класс умного указателя, используя его необходимо, создать каталог товаров (+ 2...

Классы, указатель на динамический массив - C++
Здравствуйте, Подскажите пожалуйста, в чем моя ошибка, у меня есть класс Треугольник, на основании его мне нужно создать так...

Указатель на двухмерный динамический массив - C++
Друзья, нужна Ваша помощь! Создаю одномерный динамический, создаю указатель на него (вернее на его первый эл-т). То же самое пытаюсь...

Нужно сделать указатель на динамический двумерний массив - C++
Есть динамический массив, псевдо-код: #include &lt;iostream&gt; using namespace std; const int x = 10; int main() { ...

динамический массив объектов - C++
помогите с функцией PrintGarage, чтоб она выводила массив объектов Garage int main(){ char model; int number = 0; int run =...

Динамический массив объектов - C++
Как определить объект Group, который будет содержать динамический массив объектов Person?

Динамический массив динамических объектов - C++
Физически задача поставлена так: есть узел который состоит из разных деталей, количество деталей в узле может быть разным; из узлов...

Объявить массив объектов класса Point - не работает указатель - C++
всем привет подскажите пожалуйста что я сделал не так ? //Объявить массив объектов класса Point, //каждый из которых представляет...

Динамический массив объектов класса и считывание двоичных файлов - C++
Долго бьюсь и не могу понять. В этом варианте он выдает такую ошибку #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstdlib&gt; ...


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

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

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