Пятница, 26 Апреля 2024, 00:05

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Копаем глубже С++
Копаем глубже С++
MadridianFoxДата: Суббота, 10 Апреля 2010, 19:40 | Сообщение # 1
частый гость
Сейчас нет на сайте
Приспичило полезть в С++ , в общем всё пучком но вот с классами проблема , причём идиотская biggrin , мине нать показать как вызвать функцию из другого класса . Читал книгу , видел фигу wacko .
Нет дело не в том что читать не умею)) просто подозревею что чтото я упустил .
Ошибка появляется здесь :
Unit MyUnit = new Unit();
Как наверное понятно Unit это класс ))


ApatiДата: Суббота, 10 Апреля 2010, 20:38 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Ну конечно, ты создаешь и статический и динамический объект одновременно. Ты определись уж как его создавать, либо так:
Unit MyUnit;
либо так:
Unit *MyUnit=new Unit;

В первом случае для вызова метода объекта надо использовать оператор точку:
MyUnit.MyFunction();
Во втором случае - минус со знаком больше:
MyUnit->MyFunction();

BOOMДата: Суббота, 10 Апреля 2010, 20:53 | Сообщение # 3
I am the creator of ADE
Сейчас нет на сайте
MadridianFox, Ошибка с объявлением объекта, Apati, говорит правильно, но я добавлю еще пару слов. А именно ошибка при конструировании статического, либо динамического объекта может быть вызвана из-за неправильного определения конструктора. Вот пример простейших конструкторов:
Code

class Test
private:
int a, b;
public:

Test() //Конструктор 1.
{
a = 0;
b = 0;
}

//Конструктор 2. Выполняет перегрузку функции Test() в Test(int _a, int _b)
Test(int _a, int _b)  
{
a = _a;
b = _b;
}
...
};

Теперь растолкую, почему это есть две функции Test: В С++ имеется четкая возможность: перегрузка функции. Отличие в них простое: Название функции может быть одно и тоже, а выводной параметр(return) и параметры функции могут быть разными. Что показанно в данном случае.

А вот и в коде:

Code

...
Test *t = new Test(); //Так верно и
Test *s = new Test(1,7); //И так верно.
test a; //И так верно, но статично.

...
//А вот как будит выглядеть доступ к функциям объекта:::
t->MainFun();
s->MainFun();
a.MainFun();

...

Все...


______________________________
Я вернулся, и это чудо.
______________________________
MadridianFoxДата: Воскресенье, 25 Апреля 2010, 16:02 | Сообщение # 4
частый гость
Сейчас нет на сайте
BOOM, спасибо , разобрался biggrin

Добавлено (25.04.2010, 16:02)
---------------------------------------------
А как сделать чтоб при наследовании в классе потомке создавались переменные которые есть в родителе ?
допустим есть тот же Unit c переменными mass , live , x , y ...
и есть классы потомки Player и Enemy
huh


Форум игроделов » Программирование » C/C++ » Копаем глубже С++
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг