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

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

Войти
Регистрация
Восстановить пароль
 
Sapfir
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 9
#1

Класс "Динамический одномерный массив целых чисел" - C++

28.02.2013, 12:43. Просмотров 1066. Ответов 3
Метки нет (Все метки)

Задача заключается в том что нужно
Создать класс - одномерный динамический массив целых чисел. Перегрузить оператор класса, оператор ввода - - для этого класса с помощью дружественной функции. В классе должен быть конструктор с параметрами, конструктор копирования. В функции main создать объекты класса и вызвать методы класса и перезагрузку.


У меня есть код с дружественной функции, но я не могу как понять сделать эту задачу...

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
56
57
58
59
60
61
62
63
64
#include "stdafx.h"
#include "iostream"
#include <locale> 
using namespace std;
 
class Tmas
{int n, *a;
public:
    Tmas();
    void vivod();
    void sum();
    friend int min(Tmas&obj);
    Tmas(const Tmas&obj);
    ~Tmas();
};
Tmas::Tmas()
{cout<<"Введите количество элементов массива: "<<endl;
cin>>n;
a=new int [n];
cout<<"Введите элементы массива: "<<endl;
for (int i=0;i<n;i++)
cin>>a[i];}
 
void Tmas::vivod()
{ for (int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;}
 
void Tmas::sum()
{int sum=0;
for (int i=0;i<n;i++)
sum=sum+a[i];
cout<<"Сумма элементов массива: "<<sum<<endl;}
 
int min(Tmas&obj) 
{int min=1000;
for (int i=0;i<obj.n;i++)
if (obj.a[i]<min) min=obj.a[i];
return min;}
 
Tmas::Tmas(const Tmas&obj)
{n=obj.n;
a=new int[n];
for (int i=0;i<n;i++)
a[i]=obj.a[i];}
 
Tmas::~Tmas()
{delete []a;};
 
int _tmain(int argc, _TCHAR* argv[])
{   setlocale(LC_CTYPE,"");
    Tmas *x=new Tmas();
   cout<<endl;
   x->vivod();
   x->sum();
   Tmas s(*x);
   cout<<"\n======"<<" Выполнение операции копирования "<<"======\n"<<endl;
   s.vivod();
   s.sum();
   cout<<endl;
   cout<<"\n======"<<" Находим минимальный элемент массива "<<"======\n"<<endl;
   cout<<"Минимальный элемент массива: "<<min(*x);
   int r;cin>>r;
   return 0;}

помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2013, 12:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс "Динамический одномерный массив целых чисел" (C++):

Разработать класс "динамический массив целых чисел" с конструкторами и деструкторами - C++
Динамический одномерный массив целых чисел Базовый класс: Конструкторы: по умолчанию, с параметрами и копирования. Деструктор. ...

Класс "Одномерный массив целых чисел" - C++
Создать класс одномерный массив целых чисел. Дополнительно перегрузить следующие операции: -сложение массивов -доступ по индексу ...

Класс "Динамический одномерный массив" - C++
Задания: Динамический одномерный массив целых чисел Базовый класс: Конструкторы: по умолчанию, с параметрами и копирования. ...

Создать класс "Одномерный массив чисел" - C++
Помогите, пожалуйста. Создать класс одномерный массив чисел ТVector, содержащий следующие поля:  координата Х;  координата Y; ...

Класс "Массив длинных целых чисел" - C++
1. Создать класс, содержащий динамический массив конечного размера. Тип массива - Массив длинных целых чисел. Класс должен содержать...

Класс "Массив беззнаковых целых чисел" - C++
Нужно создать класс содержащий динамический массив беззнаковых целых чисел.

3
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
28.02.2013, 14:26 #2
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
class OneDemArray{
public:
OneDemArray():_size(0),pArr(0){} //конструктор по умолчанию
OneDemArray(int size):_size(size)
{
pArr = new int[_size];
cout<<"Enter "<<_size<<" elements of array(separated by space) ";
for(int i=0;i<_size;i++)
cin>>pArr[i];
}
~OneDemArray()
{
if(pArr)
delete[] pArr;
}
OneDemArray(const OneDemArray& In)//конструктор копирования
{
_size(In._size);
pArr = new int[_size];
for(int i= 0; i<_size;i++)
pArr[i] = In.pArr[i];
}
friend ostream& operator<<(ostream&, OneDemArray&);
private:
int * pArr;
int _size;
};
ostream& operator<<(ostream& os, OneDemArray& In)
{
for(int i=0;i<In._size;i++)
os<<In.pArr[i]<<" ";
return os;
 
int main()
{
OneDemArray arr(5);
cout<<arr;
return 0;
}
}
1
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
28.02.2013, 15:35 #3
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <cstddef>
#include <algorithm>
#include <iostream>
 
class IntArray
{
public:
    explicit IntArray(std::size_t size, int init = 0) :
        _data(new int[size]),
        _size(size)
    {
        std::fill_n(_data, _size, init);
    }
 
    IntArray(const IntArray& other) :
        _data(new int[other._size]),
        _size(other._size)
    {
        std::copy(other._data, other._data + other._size, _data);
    }
 
    ~IntArray()
    {
        delete[] _data;
    }
 
    IntArray& operator = (IntArray rhs)
    {
        rhs.swap(*this);
        return *this;
    }
 
    int& operator [] (std::size_t idx)
    {
        return _data[idx];
    }
 
    const int& operator [] (std::size_t idx) const
    {
        return _data[idx];
    }
 
    std::size_t size() const
    {
        return _size;
    }
 
    void swap(IntArray& other)
    {
        std::swap(_data, other._data);
        std::swap(_size, other._size);
    }
 
    friend std::istream& operator >> (std::istream& stream, IntArray& rhs)
    {
        for(std::size_t i = 0; stream && i < rhs._size; ++i)
            stream >> rhs._data[i];
        return stream;
    }
 
private:
    int* _data;
    std::size_t _size;
};
 
int main()
{
    std::size_t n;
    std::cout << "n: ";
    std::cin >> n;
 
    IntArray a(n);
    std::cout << "'a'(n = " << a.size() << "): ";
    std::cin >> a;
 
    IntArray b(a);
    std::cout << "'b'(copy of 'a'): ";
    for(std::size_t i = 0; i < b.size(); ++i)
        std::cout << b[i] << ' ';
    std::cout << '\n';
}
1
Sapfir
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 9
28.02.2013, 20:25  [ТС] #4
просто мы немного по другому код пишем на занятиях, и я немного не понял)
0
28.02.2013, 20:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2013, 20:25
Привет! Вот еще темы с ответами:

Класс "Динамический массив точек", в котором лежит класс Point - C++
Такое вот условаие. Не могу понять что от меня хотят. Может кто или обьяснить или дать пример решения. (лучше просто объяснить). ...

Разработать класс "Массив больших чисел", который состоит из объектов класса "Большие целые числа". Найти сумму элементов массива. - C++
Разработать класс &quot;Массив больших чисел&quot;, который состоит из объектов класса &quot;Большие целые числа&quot;. Найти сумму элементов массива. ...

Класс "динамический массив" - добавление и удаление элементов в рантайме - C++
#ifndef ARRAY// if not defined #define ARRAY Class ARRAY{ Public ARRAY(); ~ ARRAY(); Void push_back (int...

Как заполнить динамический массив типа "Класс"? - C++
Есть класс: фамилия, должность, год #include &lt;string.h&gt; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #define...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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