- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
class Cmd
{
private: /* ... */
protected: /* ... */
public:
virtual void Assign(Cmd *Source) {}
/* ... */
};
//---------------------------------------------------------------------------
class UARTCmd: public Cmd
{
private: /* ... */
protected:
byte FCode;
unsigned short FCRCbytes;
int FLenData;
byte FData[256];
unsigned short FInit_CRC;
unsigned short FPoly_CRC;
TypeCommand TypeCmd;
public:
virtual void Assign(Cmd *Source) { /* .1. */ }
/* ... */
};
//---------------------------------------------------------------------------
class TRANSITCmd: public Cmd
{
private: /* ... */
protected:
byte FCode;
unsigned short FCRCbytes;
int FLenData;
byte FData[256];
unsigned short FInit_CRC;
unsigned short FPoly_CRC;
byte FID;
unsigned short FNumb;
public:
virtual void Assign(Cmd *Source) { /* .2. */ /* .3. */ }
/* ... */
};
//---------------------------------------------------------------------------
class ASKCmd: public Cmd
{
private: /* ... */
protected:
byte FCode;
unsigned short FCRCbytes;
int FLenData;
byte FData[256];
unsigned short FInit_CRC;
unsigned short FPoly_CRC;
byte FID;
byte FidFrom;
byte FTimeR;
unsigned short FSID;
public:
virtual void Assign(Cmd *Source) { /* .2. */ /* .4. */ }
/* ... */
};
//---------------------------------------------------------------------------
class RESPCmd: public Cmd
{
private: /* ... */
protected:
byte FCode;
unsigned short FCRCbytes;
int FLenData;
byte FData[256];
unsigned short FInit_CRC;
unsigned short FPoly_CRC;
byte FID;
byte FidFrom;
byte FTimeR;
unsigned short FSID;
byte FidResp;
unsigned short FCRCResp;
public:
virtual void Assign(Cmd *Source) { /* .2. */ /* .4. */ /* .5. */ }
/* ... */
};
Сие чудо я должен реализовывать! Так сказать, привести в порядок код.
P.S. Первоначальный вариант выглядит в разы лучше.
P.P.S. /* .1. */ - обозначает часть кода
Dummy00001 30.08.2010 21:34 # 0
Анонимус 30.08.2010 21:42 # 0
Govnoeb 30.08.2010 21:48 # 0
nil 31.08.2010 08:39 # +4
Или хоть руками, но копипейстить будут?
absolut 31.08.2010 10:34 # +4
В итоге: кнопок больше - результат тот же.
nil 31.08.2010 10:42 # 0
А так да, в vi именно так и делается, что-то вроде 3ddP4jP. Да и в emacs иногда проще наубивать строчек, вставить тут, а потом там.
Ой, я, кажется, спалился!
user654321 31.08.2010 19:02 # 0
nil 31.08.2010 20:13 # 0
TarasB 31.08.2010 20:57 # −1
nil 31.08.2010 21:01 # 0
Govnoeb 30.08.2010 22:04 # 0
ко мне пришла идея сделать класс Cmd шаблонным и пихать в качестве параметра шаблона функциональный объект, который собственно и будет реализововать поведение данной комманды.
и что такое привести в порядок код? рефакторить чтолэ? на говнокоде тусуешься, а умных слов не знаешь. ай я яй!
Altravert 31.08.2010 04:56 # 0
nil 31.08.2010 08:40 # +5
absolut 31.08.2010 10:40 # +1
Хотя хреново, если они общие :)
Altravert 31.08.2010 04:56 # 0
user654321 01.09.2010 08:13 # +1