Une autre possibilité
TDataString
est terminée stocker des données non nul, et a un operator=
basés sur des modèles acceptant des tableaux d'octets.
De cette façon, vous pourriez penser du code comme
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;
}
Imaginez la mise en œuvre suivante de 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;
};
En utilisant cette classe, nous pouvons attribuer "A1"
-Code
, et il va lui donner une longueur de 3
, puis en exécutant les sapins de la boucle L'itération nous amènera à A1*
.
Quelle classe est le code et que fait la méthode Len()? –
... et qu'est-ce que TDataString? –
Est-ce que ce sont les devoirs? – bcat