J'utilise l'opérateur de flux < < et l'opérateur de décalage de bits < < en une ligne. Je suis un peu confus, pourquoi le code A) ne produit pas la même sortie que le code B)?opérateur <<: std :: cout << i << (i << 1);
A)
int i = 4;
std::cout << i << " " << (i << 1) << std::endl; //4 8
B)
myint m = 4;
std::cout << m << " " << (m << 1) << std::endl; //8 8
classe Myint:
class myint {
int i;
public:
myint(int ii) {
i = ii;
}
inline myint operator <<(int n){
i = i << n;
return *this;
}
inline operator int(){
return i;
}
};
merci à l'avance
Oops
Près d'un double de: http://stackoverflow.com/questions/2603312/the-result-of-int-c0- coutcc /. Pour la plupart des buts pratiques, ils sont identiques, même si cela a utilisé "++" au lieu de "<<" comme opérateur qui a fait la modification –
@Jerry Coffin: ils sont assez similaires mais il y a tout << vs <