Я использую оператор потока < < и оператор смещения битов < < в одной строке. Я немного смущен, почему код А) не производит тот же вывод, что и код В)?оператор <<: std :: cout << i << (i << 1);
)
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
класс Минт:
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;
}
};
заранее спасибо
Нам
Почти дубликат: http://stackoverflow.com/questions/2603312/the-result-of-int-c0- coutcc /. Для большинства практических целей они одинаковы, хотя в качестве оператора, который сделал модификацию, использовали «++» вместо «<<». –
@ Jerry Coffin: они очень похожи, но есть целые << vs < <путаница и тот факт, что << не меняет условные аргументы обычным образом. –