Простейшая, в общем, программа...
#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)