С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление отрицательных элементов. Подскажите.вопрос. http://www.cyberforum.ru/cpp-beginners/thread261302.html
Есть бинарный файл. Массивы использовать нельзя. Необходимо удалить в файле отрицательные элеметны. с помощью fseek fwrite. Проблемы с функцией. Первоначально хотела сделать через написание друг...
C++ Разложение числа по цифрам Здравствуйте, вообщем возникла такая проблема вроде бы и написал уже программу разложения числа по цифрам. но работает она магическим образом: с нечетными цифрами как надо, а вот с четными только... http://www.cyberforum.ru/cpp-beginners/thread261295.html
"Проскакивает" getline(), если ранее вводилась целочисленная переменная. Почему? C++
Итак... Имеется кусок кода, который должен принимать с клавиатуры порядковый номер работы (целое число), её название (строка) и описание (опять-таки, строка). Учитывая, что "название" и "описание"...
Получение данных о пк C++
какие функций существуют или как это сделать? например узнать какой процессор и какое на нем сейчас напряжение?)
C++ Вычислить суммы положительных элементов в каждой строке двумерного массива http://www.cyberforum.ru/cpp-beginners/thread261270.html
Вычислить суммы положительных элементов в каждой строке двумерного массива в С++ Builder 6.0
C++ Файлы. Динамические массивы. Вывести на экран элементы входной последовательности положительных целых чисел, встречающихся в ней не более одного раза. Входная последовательность сохраняется в файле "lab1.dat"в виде: <элемент... подробнее

Показать сообщение отдельно
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
21.03.2011, 23:55
Да, пока можно еще с этим конструктором продолжать.
C++
1
2
3
4
5
6
7
vector::vector( int n )
{   
    if (n < 0) n = 0; // Будет m = new int[0], так можно, но вы понимаете, зачем так делаете?
        size = n;
    m = new int[n]; // Что произойдет, если new не сможет выделить память? Нужна ли следующая строка?
    if (!m) printf("Error");
}
По стандарту С++ в случае неудачи new генерирует std::bad_alloc (правда, в старых компиляорах это не совсем так). Если мы получим исключение, то до if (!m) printf("Error") уже не доберемся.

Я не вижу конструктора по умолчанию, т.е. нельзя просто vector vec. Это конечно ваше решение, но может стоило в этом случае определить какой-нибудь разумный размер: vector::vector(int n = 50)

Вы по каким-то соображениям определили свой копирующий конструктор vector::vector(const vector &vector2). Но что будет если вот так использовать ваш класс:
C++
1
2
3
vector vec1(2);
vector vec2(vec1); // хорошо.
vector vec3 = vec2; // а здесь?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.