Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 195
#1

Просьба уточнить часть кода. - C++

02.11.2011, 17:48. Просмотров 330. Ответов 4
Метки нет (Все метки)

Доброго дна.

Хотел бы уточнить что выполняет строка: Ranch[i]->Fly();

Код функции:
C++
1
2
3
4
5
for(i=0;i<NumberHorses;i++)
{
    Ranch[i]->Fly();
    delete Ranch[i];
}
Как я понимаю, функция очищает память выделенную для указателей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2011, 17:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Просьба уточнить часть кода. (C++):

Вынести основную часть кода кода в отдельную функцию - C++
помогите пожалуйста переделать это на функцию... #include &lt;locale.h&gt; #include &lt;conio.h&gt; int main() { setlocale(0,&quot;&quot;); float...

Просьба объяснить работу std::thread в двух коротких примерах кода - C++
Доброго времени суток! Я использую std::thread чтобы поднять два разных потока. В первом случае всё работает хорошо. Во втором нет. ...

часть кода (матрица) - C++
как высчитать в матрице сумму элементов, находящихся на главной диагонали и над ней.? полный код не нужен, только вот эту часть.

Объяснить часть кода - C++
Программка заполняет матрицу случайными числами и отображает правую половину матрицы на левую зеркально симметрично относительно...

Не понимаю часть кода - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void main() { int i; int a; for (int i(0); i &lt; 10;...

Обьясните часть кода - C++
Объясните пожалуйста часть кода void drowLevy? #include &lt;gl/glut.h&gt; void reshape(int w, int h)//функция перерисовки окна { ...

4
oxotnik
1591 / 1068 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
02.11.2011, 17:50 #2
Цитата Сообщение от hoot Посмотреть сообщение
Хотел бы уточнить что выполняет строка: Ranch[i]->Fly();
вызывает функцию полета

Цитата Сообщение от hoot Посмотреть сообщение
Как я понимаю, функция очищает память выделенную для указателей.
сначала заставляет летать, а потом удаляет отлетавшийся объект
1
hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 195
02.11.2011, 17:55  [ТС] #3
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
#include <iostream>
#include <string>
 
using namespace std;
 
class Horse
{
public:
    void Gallop(){cout<<"Galloping!"<<endl;}
    virtual void Fly(){cout<<"Horse can`t fly!"<<endl;}
private:
    int itsAge;
};
 
class Pegasus:public Horse
{
public:
    virtual void Fly(){cout<<"I can Fly! I can Fly!"<<endl;}
};
 
const int NumberHorses = 5;
 
int main()
{
Horse*Ranch[NumberHorses];
Horse*pHorse;
int choice, i;
for(i=0;i<NumberHorses;i++)
{
    cout<<"(1)Horse (2)Pegasus: ";
    cin>>choice;
    if(choice==2)
        pHorse=new Pegasus;
    else
        pHorse=new Horse;
    Ranch[i]=pHorse;
}
cout<<"\n";
 
for(i=0;i<NumberHorses;i++)
{
    Ranch[i]->Fly();
    delete Ranch[i];
}
 
system ("pause");
return 0;
}

Вот весь учебный код.
Объект отлетал до вызова функции.
Когда коментил указанную функцию, изменений никаких небыло.

Мне кажется что функция вызывает каждый элемент массива для очистки его.
Просто хочу удостоверится что правильно понимаю.
0
Bers
Заблокирован
02.11.2011, 18:13 #4
Цитата Сообщение от hoot Посмотреть сообщение
Мне кажется что функция вызывает каждый элемент массива для очистки его.
C++
1
2
3
4
5
6
7
for(i=0;i<NumberHorses;i++)
{ 
    Ranch[i]->Fly(); //заставить каждого зверя полетать
    delete Ranch[i]; //удалить зверя нафег. 
              //(очистить память на которую указывает элемент массива,
              // являющийся указателем на конкретного зверя)
}
1
hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 195
02.11.2011, 18:50  [ТС] #5
Точно!)
Втыкаю, я n-раз просматривал код и считал что раньше зверя заставляют летать, поэтому возник вопрос зачем второй раз обращаются к этому методу.
Спасибо всем за помощь. Ну и сори за вопрос)
0
02.11.2011, 18:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2011, 18:50
Привет! Вот еще темы с ответами:

std::istream часть кода - C++
std::istream &amp;read (std::istream &amp;in, Student_Data &amp;S_D) { cout&lt;&lt;&quot;Enter you name: &quot;; in&gt;&gt;S_D.name; ...

Перенос кода с Паскаля на Си. Часть 1 - C++
Есть задача, для решения которой написано консольное приложение на Pascal. Авторов было несколько и они не были программистами, откуда...

Поправить формулу(часть кода) - C++
Добрый день. Имеется данная формула: На C++ надо составить формулу в OpenMp. #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; ...

Вынести часть кода в функцию - C++
Скажите пожалуйста как сделать нахождение основных значений через функцию RESHENIE(), а ввод данных и вывод через функцию MAIN() ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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