Re: Двухосевой станочек
Добавлено: 22 апр 2014, 16:11
Скорее всего создаётся копия класса/метода, которая после выполнения уничтожается. Точнее можно сказать после изучения текста, но честно говоря неохота время тратить. ![Whish I knew :wik:](./images/smilies/i-dont-know.gif)
![Whish I knew :wik:](./images/smilies/i-dont-know.gif)
Статьи, обзоры, цены на станки и комплектующие.
https://www.cnc-club.ru/forum/
Это как?UAVpilot писал(а):Скорее всего создаётся копия класса/метода, которая после выполнения уничтожается. Точнее можно сказать после изучения текста, но честно говоря неохота время тратить.
Но функция же вызывается уже после создания объекта?elephant007 писал(а):потому что ты же не объявляешь отдельно переменную pos. это функция класса. Когда создал от класса объект stX можно обратится к унаследованной им функции stX.pos. Обратится в программе, а не в объявлении функции.
Код: Выделить всё
#include <stdio.h>
class Stepper {
public:
Stepper(float ppm, int step_pin, int dir_pin, int home_pin, int homing_direction);
int dir_inv;
void home();
void setSpeed(float mmin);
int step(float mm);
float pos;
long steps;
float ppm;
float home_postion;
int dir_pin;
int step_pin;
int home_pin;
int homing_direction;
private:
unsigned long step_delay; // delay between steps, in ms, based on speed
unsigned long last_step_time;
};
Stepper::Stepper(float ppm, int step_pin, int dir_pin, int home_pin, int homing_direction)
{
pos = 0;
steps = 0;
dir_inv = 1;
step_pin = step_pin;
dir_pin = dir_pin;
home_pin = home_pin;
home_postion = 2;
homing_direction = homing_direction;
ppm = ppm;
// pinMode(step_pin, OUTPUT);
// pinMode(dir_pin, OUTPUT);
// pinMode(home_pin, INPUT);
}
int Stepper::step(float mm)
{
pos += mm;
return 0;
}
void Stepper::home()
{
pos=0;
steps=0;
}
void Stepper::setSpeed(float mmin)
{
step_delay = 5;
}
Stepper stX(10, 8, 7, 15, -1);
int main(void) {
printf("pos=%f\n", stX.pos);
stX.step(123);
printf("pos=%f\n", stX.pos);
}
Код: Выделить всё
$ g++ tst.cc
$ ./a.out
pos=0.000000
pos=123.000000
$
Ненавижу СиUAVpilot писал(а):Скорее всего создаётся копия класса/метода, которая после выполнения уничтожается.