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

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

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

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

28.05.2011, 09:16. Просмотров 503. Ответов 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(С[])
ка правильно это сделать??

и как делать с динамическим массивом
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 09:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача массива (C++):

Передача массива структур в функцию не указывая размера массива - C++
Я читаю с командной строки файл в котором содержится массив структур. Есть библиотека с функцией в которую я прередаю файл и массив...

Передача массива - C++
massiv.cpp int * peredacha() { int mas; for (int i = 0; i &lt; 10; i++) for (int j = 0; j &lt; 10; j++) ...

Передача массива - C++
Нужна помощь. как передать массив созданный в функции в main()? int poisk(AEROFLOT *aeroflot,char *n) { int i,k; k=0; ...

Передача массива в функцию - C++
Не знаю в чем проблема, почему-то в функции act()(это моя функция), итерации выполняются по два раза. Суть задания создать обратную...

Передача массива в функцию - C++
Как сделать функцию, в которую будет передавться массив. я что-то не оч понимаю. вот исходный код #include &lt;iostream&gt; #include...

Передача двумерного массива - C++
Здравствуйте. Требуется передать двумерный массив в функцию и там уже его использовать. Все никак не получалось, полазил по результатам...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
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);
 
}
0
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)
такое возможно??
0
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];
}
0
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 параметр
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2011, 10:08
Привет! Вот еще темы с ответами:

Передача массива в функцию - C++
Помогите разобраться как правильно вписать простейший массив вфункцию #include&lt;iostream&gt; #include&lt;windows.h&gt; #include&lt;ctime&gt; using...

С\С++ Передача в функцию 2 массива - C++
Всем доброго времени суток, при написание программы столкнулся с проблемой. void qs(int s_arr, int first, int last, int b) { ...

Передача массива в функцию - C++
Добрый день! Начал изучать C++ и столкнулся вот с какой проблемой. Я передаю массив в некоторую функцию. В конечном итоге передаваемый...

Передача двумерного массива - C++
Помогите разобраться int func(int *arr) { arr=1; } void main(){ int arr; arr=1;


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.05.2011, 10:08
Ответ Создать тему
Опции темы

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