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

Динамически создать массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не могу найти ошибку! http://www.cyberforum.ru/cpp-beginners/thread775826.html
Вобщем вот программа. #include <iostream.h> #include <math.h> #include <iomanip.h> #include <conio.h> int main () { const int max = 500;
C++ Выбор контейнера Есть два варианта. Первый: map <pair <int,int>, int> my_map; map <pair <int,int>, int>::iterator p; p = my_map.find(make_pair(100,150)); Второй: http://www.cyberforum.ru/cpp-beginners/thread775824.html
C++ Перегрузка операторов -> <-
Здравствуйте в столь позднее время.. Какова особеность перегрузки операторов -> и . ? Что возвращают ? Если можно ссылки на стандарт...Заранее спасибо.
C++ Объекты класса
Приветствую вас) Подскажите пожалуйста какая структура у класса и его объектов в c++bilder К примеру создание класса и 3-х объектов внутри. Мучаюсь уже сутки и не могу понять...а нормальной литературы найти не получается( Заранее спасибо!
C++ Ошибка с статическими членами класса http://www.cyberforum.ru/cpp-beginners/thread775797.html
Доброго времени суток, форумчане! Недавно пришлось вернуться с С# на С++ и я тут же заметил что я все забыл( Итак по сути: Есть определение класса: static class control { public: static double u0;
C++ Найти все простые числа вида n^(n) + 1, меньше за 10^19 Мне надо создать программу. Задание вот такое: Найти все простые числа вида nn + 1, меншье за 1019. подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
31.01.2013, 08:51     Динамически создать массив
Цитата Сообщение от eoLithic Посмотреть сообщение
Есть базовый класс, есть производный класс. В базовом классе есть public функция "Кушать". Она ведь наследуется производному классу, не так ли? Ее не надо объявлять в интерфейсе производного класса или надо?
Наследуется. Не надо. Но, если вы захотите её специфицировать и вызвать из базового класса, придется сделать её виртуальной.

Цитата Сообщение от eoLithic Посмотреть сообщение
Есть идеи решения этой проблемы?
Что вам мешает скопировать адреса объектов в новый массив?

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <cstdlib>
#include <ctime>
#include <iostream>
 
class Animal {
 public:
  virtual void eat() = 0; // абстрактная виртуальная функция
};
 
class Wolf : public Animal {
 public:
  virtual void eat() {
    std::cout << "wolf eats" << std::endl;
  }
};
 
class Goat : public Animal {
 public:
  virtual void eat() {
    std::cout << "goat eats" << std::endl;
  }
};
 
// этот ковбой настоящее животное
class Cowboy : public Animal {
 public:
  virtual void eat() {
    std::cout << "cowboy eats" << std::endl;
  }
};
 
int main(int argc, char **argv) {
  srand(time(0));
 
  int numberOfGoats = 5 + rand() % 10;
  Goat *goats = new Goat[numberOfGoats];
 
  int numberOfWolves = 5 + rand() % 10;
  Wolf *wolves = new Wolf[numberOfWolves];
 
  Cowboy *cowboy = new Cowboy();
 
  int numberOfAnimals = numberOfGoats + numberOfWolves + 1;
  // указатель (массив) указателей на животных
  Animal **animals = new Animal*[numberOfAnimals];
  
  int j = 0;
  // кладем в массив _адреса_ животных
  for (int i = 0; i < numberOfGoats; ++i) animals[j++] = goats + i; // aka &(goats[i])
  for (int i = 0; i < numberOfWolves; ++i) animals[j++] = wolves + i; // aka &(wolves[i])
  animals[j++] = cowboy;
 
  // ну и можно пользоваться
  for (int i = 0; i < numberOfAnimals; ++i) {
    animals[i]->eat();
  }
  
  delete [] goats;
  delete [] wolves;
  delete cowboy;
  std::cin.get();
  return 0;
}
 
Текущее время: 00:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru