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

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

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

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

28.05.2011, 09:16. Просмотров 495. Ответов 4
Метки нет (Все метки)

Как передать массив(вектор) в класс
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++ Передача массива в подпрограмму
С\С++ Передача в функцию 2 массива C++
Передача массива в функцию C++
Передача массива C++
C++ Передача массива в функцию
C++ Передача массива в функцию
C++ Передача в класс массива
Передача массива в функцию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,395
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
49 / 49 / 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     Передача массива
Ответ Создать тему
Опции темы

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