Size: a a a

2020 July 31

AS

Anatoly Shirokov in supapro.cxx
Aleksander Mironov
Интелисенс с шаблонами уже не так спасает, а не зная нормально синтаксис, я за эту ночь всю голову разбил.
так что мешает почитать что-то по шаблонам?
источник

AS

Anatoly Shirokov in supapro.cxx
шаблоны - это замена макросам, их безопасный современный аналог (грубо говоря). результат инстанцирования шаблона класса/шаблона функции/шаблона переменной является класс, функция, переменная соответственно.
источник

D

Danya in supapro.cxx
Anatoly Shirokov
шаблоны - это замена макросам, их безопасный современный аналог (грубо говоря). результат инстанцирования шаблона класса/шаблона функции/шаблона переменной является класс, функция, переменная соответственно.
Замена макросов в одной из сфер применения макросов в Си*
источник

AS

Anatoly Shirokov in supapro.cxx
Danya
Замена макросов в одной из сфер применения макросов в Си*
вот зачем я писал в скобках "грубо говоря"? чтобы пока не трогать детали.
источник

D

Danya in supapro.cxx
Так я в них и не лезу
источник

TS

Till Schneider in supapro.cxx
Aleksander Mironov
Интелисенс с шаблонами уже не так спасает, а не зная нормально синтаксис, я за эту ночь всю голову разбил.
Интелисенс вообще редко спасает, имхо, чаще надо полагаться только на свои знания, а не на интелисенс)))
источник

DB

Dimmu Borgir in supapro.cxx
Till Schneider
Интелисенс вообще редко спасает, имхо, чаще надо полагаться только на свои знания, а не на интелисенс)))
да сталкивался с таким когда ide ругается но код компилится
источник

N+

N ++ in supapro.cxx
Доброго дня всем
Подскажите, пожалуйста, в чём может быть проблема:


Есть класс А

class A{
float getPosY();
void somefunc(int,bool,float);
private:
float posY;}

есть инициализация объектов, им присваиваются значения float Y

в одной из функций getPos имеет значение 10

for(...){
A* apple = apples[i];
.
.
.
if(...){
apple->somefunc(z, x, apple->getPosY) //здесь Y равен 10
}
}

Но при исполнении somefunc, Y=0
Почему так?
источник

VS

Vlad Serebrennikov in supapro.cxx
N ++
Доброго дня всем
Подскажите, пожалуйста, в чём может быть проблема:


Есть класс А

class A{
float getPosY();
void somefunc(int,bool,float);
private:
float posY;}

есть инициализация объектов, им присваиваются значения float Y

в одной из функций getPos имеет значение 10

for(...){
A* apple = apples[i];
.
.
.
if(...){
apple->somefunc(z, x, apple->getPosY) //здесь Y равен 10
}
}

Но при исполнении somefunc, Y=0
Почему так?
уверены, что getPosY() возвращает void?
источник

N+

N ++ in supapro.cxx
Vlad Serebrennikov
уверены, что getPosY() возвращает void?
Float*
источник

SH

Serhii Herashchenko in supapro.cxx
N ++
Float*
А возвращает что?
источник

N+

N ++ in supapro.cxx
Возвращает 10.0  до инициализации somefunc, printf в somefunc даёт 0
источник

SH

Serhii Herashchenko in supapro.cxx
N ++
Возвращает 10.0  до инициализации somefunc, printf в somefunc даёт 0
Покажи весь код
источник

SH

Serhii Herashchenko in supapro.cxx
На какой-то пасте
источник

N+

N ++ in supapro.cxx

///////main///////
//инициализация//
sf::Vector2f position;
position = sf::Vector2f(viewSize.x, viewSize.y*0.75f);
//инициализация//

for (int j = 0;j<apples.size();j++){
Apple* apple = apples[j];
if(check(tree->getX(), apple->getX(), true)){
                       std::cout << apple->getPos().y <<std::endl;
                       apple->somefunc(dt, apple->getSomeBool(), apple->getPos().y);
                   }
//Здесь y = 10
///////main///////


//////apple.h/////
class Apple
{
public:
   Apple();
   ~Apple();
sf::Vector2f getPos();
private:
sf::Vector2f position;
};
//////apple.h/////


/////apple.cpp////
sf::Vector2f Apple::getPos(){
return position;
}

void Apple::somefunc(float dt, bool b, float f){
   int a;
   printf("Y:%f", f); //Здесь y = 0
   if(f - sprite.getTextureRect().height <= sprite.getTextureRect().top)
       a=-speed;
   else
       if(!b)a=speed;
   sprite.move(0, a*dt);
}
/////apple.cpp////
источник

M

Mr.Mait in supapro.cxx
N ++

///////main///////
//инициализация//
sf::Vector2f position;
position = sf::Vector2f(viewSize.x, viewSize.y*0.75f);
//инициализация//

for (int j = 0;j<apples.size();j++){
Apple* apple = apples[j];
if(check(tree->getX(), apple->getX(), true)){
                       std::cout << apple->getPos().y <<std::endl;
                       apple->somefunc(dt, apple->getSomeBool(), apple->getPos().y);
                   }
//Здесь y = 10
///////main///////


//////apple.h/////
class Apple
{
public:
   Apple();
   ~Apple();
sf::Vector2f getPos();
private:
sf::Vector2f position;
};
//////apple.h/////


/////apple.cpp////
sf::Vector2f Apple::getPos(){
return position;
}

void Apple::somefunc(float dt, bool b, float f){
   int a;
   printf("Y:%f", f); //Здесь y = 0
   if(f - sprite.getTextureRect().height <= sprite.getTextureRect().top)
       a=-speed;
   else
       if(!b)a=speed;
   sprite.move(0, a*dt);
}
/////apple.cpp////
Если уж взялся за printf, выводи как float , а не int
printf("Y:%f,", f);
источник

N+

N ++ in supapro.cxx
Mr.Mait
Если уж взялся за printf, выводи как float , а не int
printf("Y:%f,", f);
0.000000
Но спасибо)
источник

N+

N ++ in supapro.cxx
Всем спасибо, кто хотел помочь
Решил задачу в передаче аргумента:

float f;
*((float*)&f) = apple->getPos().y;
apple->somefunc(dt, apple->getSomeBool(), f);

Флоат успешно передался, 10.000000
источник

ПК

Побитый Кирпич... in supapro.cxx
N ++
Всем спасибо, кто хотел помочь
Решил задачу в передаче аргумента:

float f;
*((float*)&f) = apple->getPos().y;
apple->somefunc(dt, apple->getSomeBool(), f);

Флоат успешно передался, 10.000000
эмм
источник

N+

N ++ in supapro.cxx
Забыл амперсант*
источник