Простейшая, в общем, программа... #include <iostream> #include <algorithm> #include <iterator> class C { private: int i; public: C():i(0){} C(int i_):i(i_){} friend std::ostream& operator<<(std::ostream&,const C&); }; std::ostream& operator<<(std::ostream& ostr,const C& c) { return ostr << c.i; } int main() { { C* mas = new C[10](-1); std::copy(mas,mas+10,std::ostream_iterator<C>(std::cout," ")); std::cout << std::endl; delete [] mas; } { int* mas = new int[10](1); std::copy(mas,mas+10,std::ostream_iterator<int>(std::cout," ")); std::cout << std::endl; delete [] mas; } return 0; } А вот результат ее работы: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 Почему так получилось - в общем, понятно. Вопросы: 1) это во всех компиляторах С++ так, или только в gnu c++? 2) Что говорит по этому поводу стандарт? Это - нормально или нет?
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [C++] Перегрузка new и delete в производном классе (2011)
- Форум Как убрать пробел с конца ostream iterator-a? (2017)
- Форум вопрос по С++ (операторные функции) (2008)
- Форум Почему выводит все нули? Вопрос про копирование и итераторы в c++ (2017)
- Форум разве этот код должен был работать без «*» и потом без «++»? (2017)
- Форум передать вектор в C++11 (2016)
- Форум Валится на throw (2005)
- Форум Чем отличается код c++ с s.erase и без него?И откуда там нули во втором случае? (2017)
- Форум Содержит ли данный код UB? (2018)
- Форум Перегруза оператора умножения (2011)