Другой возможность
TDataString
хранит ненулевые данные прекращаются, и имеет шаблонные operator=
прием массивов байт.
Таким образом, вы могли бы думать о коде, как
TDataString Code(3);
Code[0] = 'A';
Code[1] = '1';
Code[2] = '\0';
char Wild = '*';
TDataString PlcCode(Code);
for (int i = 2; i >= 0; i--)
{
PlcCode[i] = Wild;
}
Представьте себе следующую реализацию TDataString
struct TDataString {
typedef unsigned char TElement;
public:
TDataString(std::size_t n):data(n) { }
template<typename T, std::size_t N>
TDataString(T const (&d)[N]):data(d, d+N) { }
TElement &operator[](std::size_t i) {
return data[i];
}
std::size_t Len() const { return data.size(); }
private:
std::vector<TElement> data;
};
Используя этот класс, мы можем назначить "A1"
к Code
, и он даст ему длину 3
, а затем выполнит пик цикла t итерация приведет нас к A1*
.
Какой класс является кодом и что делает метод Len()? –
... и что такое TDataString? –
Это домашнее задание? – bcat