Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 59, средняя оценка - 4.68
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
#1

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

21.03.2011, 18:06. Просмотров 7871. Ответов 25
Метки нет (Все метки)

Всем доброго времени суток!
нужна ваша помощь!
нужно создать класс вектор и реализовать конструктор по умолчанию, копирования и деструктор!
кроме этого нужно создать конструктор который принимает кол элементов и указатель на данные
создать оператор перехода до типа который сохраняет класс!
вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "stdafx.h"
#include "stdio.h"
#include <time.h> 
#include <stdlib.h>
 
class vector
{  
private:
    int* m;
    int size;
public :
    vector(int n = 0);
    vector(const vector &vector2);
    ~vector();
};
vector::vector( int n )
{   
    if (n < 0) n = 0;
    size = n;
    m = new int[n];
if(!m)
printf("Error");
else
m = NULL;
}
vector::vector(const vector &vector2)
{
    size = vector2.size;
        m = new int [size];
    for(int i = 0; i<size;i++)
        m[i] = vector2.m[i];
    printf("kopia stvorena !");
}
vector::~vector()
{
        delete[] m;
}
vector(int *m, int size)
{
      srand(time(NULL))
          if(!m)
              printf("error")
          else
          for(int i = 0; i < size; i++)
           m[i] = rand()% 99;
}
 
 
int main()
{  
    vector v1(45),
    
 system("pause");
    return 0;
}
что не так, пожалуйста с коментами
я только что начал изучать ООП!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2011, 18:06     Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Посмотрите здесь:
C++ Создать любой класс. Реализовать конструктор, деструктор, продемонстрировать работу
Класс "Матрица": конструктор, деструктор и перегрузка операторов C++
Для структуры "Дата" реализовать конструктор по умолчанию, выводящий текущую дату C++
Описать класс "полином" - Для чего нужен конструктор по умолчанию? C++
C++ Создать конструктор копирования для класса "Прямоугольник"
Разработать класс Airplane (самолет). Определить конструктор и деструктор. Реализовать объявленные методы доступа к данным. C++
Деструктор и конструктор копирования не работают C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
22.03.2011, 18:16     Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор #21
Цитата Сообщение от silent_1991 Посмотреть сообщение
что следовать им нет никакого желания.
а куда ты денешься? поворчишь, мол со мной грубо обошлись, и будешь следовать...
silent_1991
22.03.2011, 18:19
  #22

Не по теме:

slice, а я не говорю, что вы со мной грубо обошлись. Я говорю, что вы слишком высокого мнения о себе. И борзеете сверх приличия.

kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
22.03.2011, 18:22  [ТС]     Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор #23
господа ПРОГРАММИСТЫ, давайте не будем оскорблять друг друга !
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
22.03.2011, 19:11     Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор #24
Цитата Сообщение от Deviaphan Посмотреть сообщение
Цитата Сообщение от bigredcat Посмотреть сообщение
Я не вижу конструктора по умолчанию, т.е. нельзя просто vector vec
А ведь он есть.)
Да, есть, как-то просмотрел
Цитата Сообщение от Deviaphan Посмотреть сообщение
Но будет ошибка времени выполнения. Ибо, int m = new int[0] - низя.
Не будет, по-тому что m = new int[0] можно
Цитата Сообщение от Deviaphan Посмотреть сообщение

Цитата Сообщение от bigredcat Посмотреть сообщение
По стандарту С++ в случае неудачи new генерирует std::bad_alloc
Это вообще весёлая тема, но я пруф не вспомню никак. Суть в том, что реальное выделение памяти происходит только при использовании, т.е. в большинстве случаев вообще невозможно узнать об ошибке выделения памяти, пока приложение не упадёт.
Александреску, кажется, или Саттер... не помню...
За все компиляторы я не говорил, о чем упомянул в сообщении, но попробуйте
C++
1
int* p; while (1) p = new int[1000000];
А вообще посмотрите в стандарте, там есть и об new int[0] и об std::bad_alloc
rangerx
22.03.2011, 19:37
  #25

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
C++
1
Array(size_t);
Подобного рода конструкторы крайне желательно объявлять как explicit.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2011, 19:40     Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Еще ссылки по теме:
C++ Конструктор Шредингера "нет подходящего конструктора по умолчанию", хотя он есть
C++ Конструктор копирования и перегрузка операции "="
Конструктор копирования, деструктор при наследовании C++
C++ Visual жалуется на конструктор "Error C2512: нет подходящего конструктора по умолчанию"
Класс: конструктор и деструктор C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
silent_1991
22.03.2011, 19:40     Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
  #26

Не по теме:

rangerx, да, согласен, вечно у меня это из головы вылетает...

Yandex
Объявления
22.03.2011, 19:40     Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru