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

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

Восстановить пароль Регистрация
 
Sapfir
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 9
28.02.2013, 12:43     Класс "Динамический одномерный массив целых чисел" #1
Задача заключается в том что нужно
Создать класс - одномерный динамический массив целых чисел. Перегрузить оператор класса, оператор ввода - - для этого класса с помощью дружественной функции. В классе должен быть конструктор с параметрами, конструктор копирования. В функции 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;}

помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2013, 12:43     Класс "Динамический одномерный массив целых чисел"
Посмотрите здесь:

Динамический массив из целых чисел C++
C++ Динамический массив целых чисел
C++ Описать класс, реализующий простой динамический массив из целых чисел
Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение C++
C++ Разработать класс "динамический массив целых чисел" с конструкторами и деструкторами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
636 / 557 / 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;
}
}
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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';
}
Sapfir
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 9
28.02.2013, 20:25  [ТС]     Класс "Динамический одномерный массив целых чисел" #4
просто мы немного по другому код пишем на занятиях, и я немного не понял)
Yandex
Объявления
28.02.2013, 20:25     Класс "Динамический одномерный массив целых чисел"
Ответ Создать тему
Опции темы

Текущее время: 04:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru