Извините, если этот вопрос повторяется.
tl; dr:
How to :
struct t{ float[3] smthng = {9,1,2,3}; };
float a = (float*)&t; // to get an 9;
Итак, в настоящее время я пытаюсь сэкономить некоторое место в памяти путем перехода python концепт C ++ .Идея состоит в том, чтобы создать таймер пошагового объекта (X = X0 + I*STEP
), который будет увеличиваться при каждом вызове и возвращать текущее значение, сохраненное в нем.Поэтому, когда мне нужно создать волну с использованием частотной формулы, я могу просто передать текущее значение таймера.
Я не могу использовать массивы или списки, так как мне нужно манипулировать ими намного больше, чем просто пошаговая функция, такая как сброс настроек через некоторый интервал, добавление фазировки и различных начальных точек и т. Д. ...
Итак, я создал структуру с текущими, шаговыми и конечными числами с плавающей точкой, но теперь мне нужно иметь возможность распределять цикл по нему и ссылаться только на текущий атрибут (в этом случае step и end являются частными.
Структура таймера
struct timer{
private:
void reset(){ // resets a current slot
this->curr = 0.0f;
}
bool check(){ // checks if the next steps overflows the limit
return (( this->curr+this->step) < this->end );
}
public:
float curr,step,end;
timer(){
this->curr = 0.0f;
this->step = 1.0f;
this->end = 10.0f;
}
template < class N, class T >
timer( N step, T end ){
this -> curr = 0.0f;
this -> step = (float) step;
this -> end = (float) end;
}
template < class N >
timer( N end ){
this -> end = (float) end;
}
};
std::ostream& operator<< (std::ostream &out, timer &data) {
out<< "f(x) = "
<<"I*" << data.step
<< " [ "<< data.curr <<" / " << data.end << " ]";
return out;
}
Итак, все, что мне нужно сделать, прежде чем приступить к методам __begin
и __end
, - это сделать просто:
timer obj;
float a = &obj; // and to get an obj.current value
Я пытался перегрузить operator&
, operator*
и т. Д. Но каждый раз, когда я пытаюсь прочитать память структура таймера , я получаю только ошибку преобразования.
Так жеКто-нибудь знает, как ссылаться на структуру памяти как определенный тип?