Zero-Giulio
04-06-2010, 13:46
Stavo leggendo la documentazione della Blitz++ library quando leggo questo pezzo di codice:
int main()
{
Array<float,2> A(3,3), B(3,3), C(3,3);
A = 1, 0, 0,
2, 2, 2,
1, 0, 0;
B = 0, 0, 7,
0, 8, 0,
9, 9, 9;
C = A + B;
cout << "A = " << A << endl
<< "B = " << B << endl
<< "C = " << C << endl;
che praticamente inizializza e somma due matrici.
Avete idea di che operatori io debba ridefinire per ottenere un costruttore della classe array tipo riportato sopra???
Voglio dire, come faccio a trattare una lista di numeri separati dalla virgola subito dopo l'operatore di uguaglianza?
La prima idea che mi viene in mente è quella di ridefinire l'operatore di virgola, e fare in modo che aggiunga un elemento in fondo all'array, e poi far restituire all'operatore = il riferimento all'array (che sarebbe cmq il suo comportamento di default).
Ma non sono sicuro funzioni. E sopratutto non sono sicuro sia il modo più lineare ed elegante per ottenere quello che mi serve.
Voi avete qualche idea?
int main()
{
Array<float,2> A(3,3), B(3,3), C(3,3);
A = 1, 0, 0,
2, 2, 2,
1, 0, 0;
B = 0, 0, 7,
0, 8, 0,
9, 9, 9;
C = A + B;
cout << "A = " << A << endl
<< "B = " << B << endl
<< "C = " << C << endl;
che praticamente inizializza e somma due matrici.
Avete idea di che operatori io debba ridefinire per ottenere un costruttore della classe array tipo riportato sopra???
Voglio dire, come faccio a trattare una lista di numeri separati dalla virgola subito dopo l'operatore di uguaglianza?
La prima idea che mi viene in mente è quella di ridefinire l'operatore di virgola, e fare in modo che aggiunga un elemento in fondo all'array, e poi far restituire all'operatore = il riferimento all'array (che sarebbe cmq il suo comportamento di default).
Ma non sono sicuro funzioni. E sopratutto non sono sicuro sia il modo più lineare ed elegante per ottenere quello che mi serve.
Voi avete qualche idea?