Вопрос-Ответ (C++)
|
|
Kornival | Дата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1 |
The Witcher
Сейчас нет на сайте
| Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.
Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
|
|
| |
OpenGOO | Дата: Понедельник, 04 Августа 2014, 18:17 | Сообщение # 1361 |
почти ветеран
Сейчас нет на сайте
| Saitei, может из за этого Цитата The loadFromFile function sometimes fails with no obvious reason.
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
Saitei | Дата: Понедельник, 04 Августа 2014, 18:23 | Сообщение # 1362 |
старожил
Сейчас нет на сайте
| Цитата OpenGOO ( ) fails with no obvious reason. Как это так?! О_оДобавлено (04.08.2014, 18:23) --------------------------------------------- Заметил, что в релизе оно пашет. Хм. Дело в библах
|
|
| |
goldsphere | Дата: Вторник, 02 Сентября 2014, 15:30 | Сообщение # 1363 |
заслуженный участник
Сейчас нет на сайте
| Я собираюсь в своём проекте в VS использовать классы Image и Object, при создании мне пишут, что они зарезервированы, не будет ли проблем, если я заключу их в namespace?
FinderX - Android Аркада
|
|
| |
morglodddd | Дата: Вторник, 02 Сентября 2014, 16:44 | Сообщение # 1364 |
участник
Сейчас нет на сайте
| Цитата goldsphere ( ) в VS использовать классы Image и Object В C++ нет таких зарезервированных слов, не слушай того, кто тебе такое пишет - он лжет xDDD
|
|
| |
goldsphere | Дата: Среда, 03 Сентября 2014, 05:27 | Сообщение # 1365 |
заслуженный участник
Сейчас нет на сайте
| morglodddd, не слов, а классы, возможно для нужд студии или чего-то ещё...
FinderX - Android Аркада
|
|
| |
morglodddd | Дата: Среда, 03 Сентября 2014, 06:16 | Сообщение # 1366 |
участник
Сейчас нет на сайте
| goldsphere, а классы вообще не резервируются
|
|
| |
-l33t-h4xx- | Дата: Среда, 03 Сентября 2014, 11:17 | Сообщение # 1367 |
участник
Сейчас нет на сайте
| Цитата morglodddd ( ) goldsphere, а классы вообще не резервируются Потом, когда его программа не компилируется или работает непонятным образом, человек перестаёт так думать.
Вообще, неймспейсы исключают случайные конфликты имён, так что должно сработать.
Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Среда, 03 Сентября 2014, 11:43 |
|
| |
Alkosha | Дата: Вторник, 07 Октября 2014, 10:15 | Сообщение # 1368 |
участник
Сейчас нет на сайте
| Реально ли (если реально, то как) сделать функцию так, чтоб ей можно было передавать три аргумента, а так же можно было бы и два аргумента передавать, не указывая третий (при этом третий аргумент принимал бы дэфолтное значение, указанное внутри функции) ?
То есть чтобы можно было бы одну и ту же функцию и так вызывать: func(X,Y,Z); и вот так: func(X,Y); [чтоб компилятор не ругался на некорректное количество аргументов]
|
|
| |
goldsphere | Дата: Вторник, 07 Октября 2014, 10:37 | Сообщение # 1369 |
заслуженный участник
Сейчас нет на сайте
| void func(int x = 0, int y = 0, int z = 0){} Только если ты хочешь пропустить допустим y, то придётся писать так func(x, 0, z);
FinderX - Android Аркада
|
|
| |
Alkosha | Дата: Понедельник, 13 Октября 2014, 09:02 | Сообщение # 1370 |
участник
Сейчас нет на сайте
| А вот ещё один нубский вопрос. Есть два разных класса, и каждому из них необходимо получать результаты переменных друг друга.
То есть class MyClass1 { int a=228; int b;
b=B.b; } MyClass1 A;
class MyClass2 { int a; int b=1488;
a= A.a; } MyClass2 B;
В данном случае если класс А будет объявлен раньше, компилятор выдаст сообщение об ошибке, что не объявлен клас B в строчке присвоения переменной. И наоборот.
Сообщение отредактировал Alkosha - Понедельник, 13 Октября 2014, 09:02 |
|
| |
goldsphere | Дата: Понедельник, 13 Октября 2014, 10:11 | Сообщение # 1371 |
заслуженный участник
Сейчас нет на сайте
| Что вообще за бред написан выше? Во-первых, переменным внутри класса присваивается значение в конструкторе. Во-вторых,обмен данными может быть только между экземплярами классов. Я, если честно, не очень понял, что должно получиться в итоге. Поподробнее о задаче, пожалуйста.
FinderX - Android Аркада
Сообщение отредактировал goldsphere - Понедельник, 13 Октября 2014, 10:12 |
|
| |
SEvg | Дата: Понедельник, 13 Октября 2014, 12:01 | Сообщение # 1372 |
Алхимик
Сейчас нет на сайте
| Цитата Alkosha ( ) class MyClass1 { int a=228; int b;
b=B.b; } MyClass1 A;
class MyClass2 { int a; int b=1488;
a= A.a; } MyClass2 B; Alkosha, если компилятор это проглатывает, то я хочу тоже такой, чтобы он сам понимал, что я хочу, не зависимо от кода программы ;))
Сообщение отредактировал SEvg - Понедельник, 13 Октября 2014, 12:01 |
|
| |
OpenGOO | Дата: Понедельник, 13 Октября 2014, 12:17 | Сообщение # 1373 |
почти ветеран
Сейчас нет на сайте
| Как то так.
MyClass1.h Код #pragma once
class MyClass2;
class MyClass1 { public: explicit MyClass1(int val) : a(val) {} MyClass1(int val, MyClass2& mc); int getA() const { return a; } void setB(const MyClass2& val)
private: int a; int b; }
MyClass1.cpp Код #include "MyClass1.h" #include "MyClass2.h"
MyClass1::MyClass1(int val, MyClass2& mc) { a = val; b = mc.getB(); mc.setA(*this); }
void MyClass1::setB(const MyClass2& val) { b = val.getB(); }
MyClass2.h Код #pragma once
class MyClass1;
class MyClass2 { public: explicit MyClass2(int val) : b(val) {} int getB() const { return b; } void setA(const MyClass1& val);
private; int a; int b; }
MyClass2.cpp Код #include "MyClass2.h" #include "MyClass1.h"
void MyClass2::setA(const MyClass1& val) { a = val.getA(); }
main.cpp Код #include "MyClass1.h" #include "MyClass2.h"
int main() { auto mc1 = MyClass1(228); auto mc2 = MyClass2(1488); mc1.setB(mc2); mc2.setA(mc1); auto mc3 = MyClass2(1488); auto mc4 = MyClass1(228, mc3); return 0; }
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
Сообщение отредактировал OpenGOO - Среда, 15 Октября 2014, 07:06 |
|
| |
SEvg | Дата: Понедельник, 13 Октября 2014, 12:48 | Сообщение # 1374 |
Алхимик
Сейчас нет на сайте
| Код #include <iostream>
using namespace std;
class MyClass1 { public: int a; int b; };
class MyClass2 { public: int a; int b; };
int main() { MyClass1 A; A.a = 5; A.b = 7; MyClass2 B; B.a = 12; B.b = 17; cout << A.a + A.b + B.a + B.b << endl; return 0; }
|
|
| |
CARATOV | Дата: Пятница, 24 Октября 2014, 21:34 | Сообщение # 1375 |
почетный гость
Сейчас нет на сайте
| Здравствуйте уважаемые форумчане подскажите пожалуйста литературу по С++
Игрострой рулит!!!
|
|
| |
Alkosha | Дата: Вторник, 28 Октября 2014, 23:15 | Сообщение # 1376 |
участник
Сейчас нет на сайте
| Можно ли в векторе хранить структуру ? Код struct partic { int life; float x; float y; float dx,dy; int fade; };
vector <partic> partics;
компилится без эрроров. Код for(int i=0;i<maxcount;i++) { partics.push_back(partic()); inipartic(i); }
Но в месте присвоения значений программа крашит. Код void inipartic(int idx) { partics[idx].life=rand()%(lifemax-lifemin)+lifemin; // тут, например. .... }
|
|
| |
Snake174 | Дата: Среда, 29 Октября 2014, 05:55 | Сообщение # 1377 |
участник
Сейчас нет на сайте
| Цитата Но в месте присвоения значений программа крашит. Попробуй так: Код for(int i=0;i<maxcount;i++) { partic p; partics.push_back(p); inipartic(); }
void inipartic() { partics[ partics.count() - 1 ].life=rand()%(lifemax-lifemin)+lifemin; // тут, например. .... }
Не следует обманывать инспектора Pipmak Assistant Love2D Exporter Love2D-Helpers Old Consoles Games
|
|
| |
OpenGOO | Дата: Среда, 29 Октября 2014, 15:48 | Сообщение # 1378 |
почти ветеран
Сейчас нет на сайте
| Код у него правильный, у него ошибка времени выполнения, например (lifemax-lifemin) может быть равен 0
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
Alkosha | Дата: Среда, 29 Октября 2014, 21:57 | Сообщение # 1379 |
участник
Сейчас нет на сайте
| Цитата OpenGOO ( ) у него ошибка времени выполнения, например (lifemax-lifemin) может быть равен 0
Хммм... а ведь действительно. Ибо с присвоениями Код partics[idx].x=rand()%(rectangle.w)+rectangle.x; partics[idx].y=rand()%(rectangle.h)+rectangle.y; partics[idx].dx=rand()%(int)(maxspeedX-minspeedX)+minspeedX; partics[idx].dy=rand()%(int)(maxspeedY-minspeedY)+minspeedY; всё ок.
Вы правы.
В таком случае , каким образом задать диапазон рандомных чисел, лежащих в пределе от lifemin до lifemax ?
rand()%(lifemax)+lifemin; тут порой будет перебор. Число будет выходить за lifemax. Надо lifemax тогда ограничить.
Может так? int RND= lifemax-lifemin; rand()%(RND)+lifemin;
|
|
| |
Archido | Дата: Среда, 29 Октября 2014, 22:30 | Сообщение # 1380 |
Сэнсэй
Сейчас нет на сайте
| Цитата Alkosha ( ) В таком случае , каким образом задать диапазон рандомных чисел, лежащих в пределе от lifemin до lifemax ? Гуглом пользоваться не учили? Это ведь в разы быстрее чем ждать ответа тут. Код min + (rand() % (int)(max - min + 1))
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |