Вопрос-Ответ (C++)
|
|
Kornival | Дата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1 |
The Witcher
Сейчас нет на сайте
| Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.
Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
|
|
| |
maXimBestUA | Дата: Четверг, 24 Мая 2012, 16:04 | Сообщение # 341 |
почетный гость
Сейчас нет на сайте
| Спасибо
|
|
| |
offzoom | Дата: Суббота, 26 Мая 2012, 00:20 | Сообщение # 342 |
был не раз
Сейчас нет на сайте
| Друзья! Два вопроса! 1) с# private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); this.Close(); } Как этот код будет выглядить в c++?
2)Как создать в visual c++ windows form, вот так: Есть Form1 и Button1, нужно создать в Form1, окошко с суммой 100 000 и при нажатие на button1 из суммы вычитается 500.
|
|
| |
gansterm | Дата: Суббота, 26 Мая 2012, 16:37 | Сообщение # 343 |
частый гость
Сейчас нет на сайте
| У меня возникла небольшая проблема с классами. Есть класс родителя и класс-наследник. В классе наследнике при определенных условиях должно быть самоудаление этого класса. Вопрос, как удалить этот класс? Гуглил про виртуальный деструктор он почему-то выдает ошибку.
|
|
| |
Demeron | Дата: Суббота, 26 Мая 2012, 17:03 | Сообщение # 344 |
User created in C++
Сейчас нет на сайте
| Quote (gansterm) У меня возникла небольшая проблема с классами. Есть класс родителя и класс-наследник. В классе наследнике при определенных условиях должно быть самоудаление этого класса. Вопрос, как удалить этот класс? Гуглил про виртуальный деструктор он почему-то выдает ошибку. Может конечно глупость, но первая мысль: Code class a { ..... };
class b:public a { public: ~b(){}//destructor ... };
|
|
| |
gansterm | Дата: Суббота, 26 Мая 2012, 17:13 | Сообщение # 345 |
частый гость
Сейчас нет на сайте
| Quote (Demeron) Может конечно глупость, но первая мысль: Code class a { ..... }; class b:public a { public: ~b(){}//destructor ... }; при попытке вызвать delete this в классе б возникает это Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall asteriod::~asteriod(void)" (??1asteriod@@QAE@XZ) в функции "public: void * __thiscall asteriod::`scalar deleting destructor'(unsigned int)" (??_Gasteriod@@QAEPAXI@Z) asteriods.obj SpaseRangers
|
|
| |
Нохчи | Дата: Суббота, 26 Мая 2012, 21:37 | Сообщение # 346 |
заслуженный участник
Сейчас нет на сайте
| Quote (gansterm) при попытке вызвать delete this Ошибка не из-за delete this. Покажие больше кода.
Quote (gansterm) В классе наследнике при определенных условиях должно быть самоудаление этого класса. Code class a { DropIt() { delete this; } }
Многие вопросы по Windows отпадут, если посмотреть тут
Сообщение отредактировал Нохчи - Суббота, 26 Мая 2012, 21:38 |
|
| |
gansterm | Дата: Воскресенье, 27 Мая 2012, 10:52 | Сообщение # 347 |
частый гость
Сейчас нет на сайте
| Расскажу по подробнее: класс А находится в векторе. В функции кадра обновляю все объекты Code for(int i=0;i <= dyn.size()-1;i++){ if(dyn.at(i)->hp<1){dyn.at(i)->Drop();dyn.erase(dyn.begin()+i);} };
Quote (Нохчи) class a { DropIt() { delete this; } } Я по книжке недавно начал изучать наследственность, этим кодом мы освобождаем памать под Б класс?
|
|
| |
Нохчи | Дата: Воскресенье, 27 Мая 2012, 21:00 | Сообщение # 348 |
заслуженный участник
Сейчас нет на сайте
| Наследование тут не при чем. Освободится память, выделенная под экземпляр, на который указывает this. Твой код из #347 правильный.
Многие вопросы по Windows отпадут, если посмотреть тут
|
|
| |
gansterm | Дата: Воскресенье, 27 Мая 2012, 22:06 | Сообщение # 349 |
частый гость
Сейчас нет на сайте
| Все ,спасибо дальше сам разберусь
|
|
| |
clidi | Дата: Суббота, 02 Июня 2012, 20:23 | Сообщение # 350 |
почетный гость
Сейчас нет на сайте
| Может кто знает, при создании объекта в динамической памяти не вызывается деструктор при удалении. Так и должно быть? Пример: Weapon* w = new Weapon(); А если писать Weapon w; то все нормальна.
|
|
| |
Demeron | Дата: Суббота, 02 Июня 2012, 20:28 | Сообщение # 351 |
User created in C++
Сейчас нет на сайте
| Quote (clidi) Так и должно быть? Вроде как да) Удаляй через delete.
Code Weapon* w = new Weapon(); delete w;
Weapon* w2 = new Weapon[10]; delete[] w2;
|
|
| |
clidi | Дата: Суббота, 02 Июня 2012, 20:49 | Сообщение # 352 |
почетный гость
Сейчас нет на сайте
| Demeron, Ну должен же быть какой то способ удалять через функции
|
|
| |
Demeron | Дата: Суббота, 02 Июня 2012, 23:04 | Сообщение # 353 |
User created in C++
Сейчас нет на сайте
| Quote (clidi) Demeron, Ну должен же быть какой то способ удалять через функции чем тебе такой способ не нравиться?
|
|
| |
Нохчи | Дата: Суббота, 02 Июня 2012, 23:28 | Сообщение # 354 |
заслуженный участник
Сейчас нет на сайте
| Как это деструктор не вызывается? Должен. Добавлено (02.06.2012, 23:28) --------------------------------------------- clidi, а как ты его потом удаляешь? Мне почему-то кажется, что никак и у тебя там тупо утечка памяти.
Многие вопросы по Windows отпадут, если посмотреть тут
|
|
| |
clidi | Дата: Воскресенье, 03 Июня 2012, 00:03 | Сообщение # 355 |
почетный гость
Сейчас нет на сайте
| Нохчи, Я в деструкторе написал cout вывод и он не показался, то есть не вызывается. Никак не удаляю, так как просто проверял. Понятно конечно что из мейн метода например можно удалить (delete).
|
|
| |
Нохчи | Дата: Воскресенье, 03 Июня 2012, 00:06 | Сообщение # 356 |
заслуженный участник
Сейчас нет на сайте
| На каждый new обязательно нужно делать явный delete, иначе будет утечка памяти.
Многие вопросы по Windows отпадут, если посмотреть тут
|
|
| |
clidi | Дата: Вторник, 05 Июня 2012, 19:52 | Сообщение # 357 |
почетный гость
Сейчас нет на сайте
| Подскажите про перечу адреса в reference параметр функции. const int& parameter то же самое, что и int const & parameter или нет?
Вопрос не актуален.
Сообщение отредактировал clidi - Среда, 06 Июня 2012, 23:29 |
|
| |
Saitei | Дата: Суббота, 09 Июня 2012, 23:56 | Сообщение # 358 |
старожил
Сейчас нет на сайте
| Почему я не могу юзать getline()? Подчеркивает красным сразу же... Подключал вот что: Code #include <stdio.h> #include <iostream> #include <conio.h> using namespace std;
|
|
| |
Snuux | Дата: Воскресенье, 10 Июня 2012, 00:39 | Сообщение # 359 |
постоянный участник
Сейчас нет на сайте
| Saitei, полный код скинь, наверно дело в чем то другом.
|
|
| |
Saitei | Дата: Четверг, 14 Июня 2012, 16:23 | Сообщение # 360 |
старожил
Сейчас нет на сайте
| switch умеет работать с текстовыми условиями? Ну... Я хотел сделать так: Code #include <iostream> using namespace std; char a[255]; int main() { switch(a) { case olololo { cout << Yep!<<endl; }
} }
|
|
| |