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

Передача массива - C++

Восстановить пароль Регистрация
 
GooDLivE
0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 13
28.05.2011, 09:16     Передача массива #1
Как передать массив(вектор) в класс
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
class CZigzagLine
{
private:
        int value[6];
 
 
public:
        int &operator() (int p1);
};
 
int& CZigzagLine ::operator()(int p1)
{
        if (p1 > 6)
        {       
                cout << "Error\n" << endl;
                exit(1);
        }
        return value[p1];
};
int main()
{
        int p;
        setlocale( LC_ALL, "Russian" );
        
        cin >> p;
        CZigzagLine A;
       for (int i = 0; i < p; i++)
        {
                
                cin >> p;
                A(i)=p;
        }
так удаеться передать но мне надо бы типо

C++
1
CZigzagLine A(С[])
ка правильно это сделать??

и как делать с динамическим массивом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 09:16     Передача массива
Посмотрите здесь:

C++ Передача массива в функцию.
Передача массива C++
Передача массива в функцию С++ C++
C++ Передача в функцию массива
передача двумерного массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
28.05.2011, 09:37     Передача массива #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
41
42
43
44
45
#include <iostream>
using namespace std;
class CZigzagLine
{
private:
        int value[6];
 
 
public:
        CZigzagLine () {};           
        CZigzagLine (int* p) {
         for (int i= 0; i< 6; i++) {
          value [i]= p [i];
         }
        };           
        int &operator() (int p1);
};
 
int& CZigzagLine ::operator()(int p1)
{
        if (p1 > 6)
        {       
                cout << "Error\n" << endl;
                exit(1);
        }
        return value[p1];
};
int main()
{
        int p;
        setlocale( LC_ALL, "Russian" );
        
        cin >> p;
        CZigzagLine A;
       for (int i = 0; i < p; i++)
        {
                
                cin >> p;
                A(i)=p;
        }
 
        int array [6]= {2,3,4,5,6,7};
        CZigzagLine B (array);
 
}
GooDLivE
0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 13
28.05.2011, 09:55  [ТС]     Передача массива #3
Спасибо... а можно ли динамический массив который при этом заполняеться через цикл
C++
1
2
3
4
5
6
7
8
9
10
11
12
class ppz
{
float *vertex;
.....
};
....
double *C;
for(i=0;i<10;i++)
{
cin >> C[i];
}
ppz A(C)
такое возможно??
kjahert
48 / 48 / 5
Регистрация: 08.04.2011
Сообщений: 124
28.05.2011, 10:00     Передача массива #4
Динам. массив это
C++
1
2
3
4
5
6
7
8
cout<<"Vvedite razmer matricy: \n";
 cin>>n;
int* C=new int [n];
cout<<"Vvedite matricu: \n";
  for (int i=0;i<n;i++)
  {
C[i];
}
GooDLivE
0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 13
28.05.2011, 10:08  [ТС]     Передача массива #5
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <iostream>
#include <cstdio>
#include <math.h>
using namespace std;
class PolyLine {
    float *Vertex[2];  
    int size;
public:
    PolyLine();
    PolyLine(int n, float *newVertexes[2]);
    ~PolyLine();
 
    void AddVertex(float x, float y);
    int VertexCount() const
    {
        return size;
    }
    float Length() const;
 
    PolyLine & operator = (const PolyLine & other);
    bool operator == (const PolyLine & other) const;
    bool operator != (const PolyLine & other) const;
    bool operator >= (const PolyLine & other) const;
    bool operator <= (const PolyLine & other) const;
    bool operator > (const PolyLine & other) const;
    bool operator < (const PolyLine & other) const;
};
 
PolyLine::PolyLine() : size(1)
{
    for(int i = 0; i < 2; i++)
    {
        Vertex[i] = new float [size];
        Vertex[i][0] = 0.0f;
    }
}
 
PolyLine::PolyLine(int n, float *newVertexes[2]) : size(n)
{
    for(int i = 0; i < 2; i++)
    {
        Vertex[i] = new float [size];
        for(int j = 0; j < size; j++)
        {
            Vertex[i][j] = newVertexes[i][j];
        }
    }
}
 
PolyLine::~PolyLine()
{
    for(int i = 0; i < 2; i++)
    {
        delete [] Vertex[i];
    }
}
 
void PolyLine::AddVertex(float x, float y)
{
    float * tmp[2];
    for(int i = 0; i < 2; i++)
    {
        tmp[i] = new float [size + 1];
        for(int j = 0; j < size; j++)
        {
            tmp[i][j] = Vertex[i][j];
        }
        delete [] Vertex[i];
        Vertex[i] = tmp[i];
    }
    Vertex[0][size] = x;
    Vertex[1][size] = y;
    size++;
}
 
float PolyLine::Length() const
{
    float length(0.0f);
    for(int i = 0; i < size - 1; i++)
    {
        length += sqrt(pow(Vertex[0][i + 1] - Vertex[0][i], 2.0f) + pow(Vertex[1][i + 1] - Vertex[1][i], 2.0f));
    }
    return length;
}
 
PolyLine & PolyLine::operator = (const PolyLine & other)
{
    if(this != &other)
    {
        size = other.size;
        for(int i = 0; i < size; i++)
        {       
            delete [] Vertex[i];
            Vertex[i] = new float [size];
            for(int j = 0; j < size; j++)
            {
                Vertex[i][j] = other.Vertex[i][j];
            }
        }
    }
    return *this;
}
 
bool PolyLine::operator == (const PolyLine & other) const
{
    return Length() == other.Length();
}
 
bool PolyLine::operator != (const PolyLine & other) const
{
    return Length() != other.Length();
}
 
bool PolyLine::operator >= (const PolyLine & other) const
{
    return Length() >= other.Length();
}
 
bool PolyLine::operator <= (const PolyLine & other) const
{
    return Length() <= other.Length();
}
 
bool PolyLine::operator > (const PolyLine & other) const
{
    return Length() > other.Length();
}
 
bool PolyLine::operator < (const PolyLine & other) const
{
    return Length() < other.Length();
}
int main()
{
    int n;
    cout<<"Vvedite razmer matricy: \n";
    cin>>n;
    int* C=new int [n];
    cout<<"Vvedite matricu: \n";
    for (int i=0;i<n;i++)
    {
        C[i];
    }
    PolyLine A(n,C);
 
}
вот чет не работает ругаеться на 2 параметр
Yandex
Объявления
28.05.2011, 10:08     Передача массива
Ответ Создать тему
Опции темы

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