4
4xter
Возникла проблема при работе с динамическим массивом в классе. Ранее когда я просто через константу задавал размер массива, то всё ок работало. Теперь хочется сделать чтобы размер задавался пользователем. Вообще задачка следующая: перегрузить операцию > при работе с массивами. Я сделал её таким образом что содержимое массива а просто копировалось в b операцией a>b. Суть не в этом. НЕ МОГУ МАССИВЫ САМИ ПОЛУЧИТЬ. В результате мне выводит пустые ячейки памяти.
Вот мой код:
<!--shcode--><pre><code class='код'>#include
<iostream>
using namespace std;
//int const Size =5; // размер масива
class Masiv{
//private :
//int size1;
public:
int Size1;
int M[];
Masiv() {};
~Masiv(){};
void SetI(int Data,int i);
int GetI(int i){return M;}
int getSize(int Size);
Masiv operator>(Masiv &);
};
int Masiv::getSize(int Size)
{
Size1=Size;
return Size1;
}
void Masiv::SetI(int Data,int i){
M=Data;
}
Masiv Masiv:perator>(Masiv &V){
// Masiv B;
for (int i=0;i<Size; i++)
V.SetI(GetI(i),i);
return V;
}
void viev(Masiv A){
for (int i=0;i<Size;i++)
cout << i<<'\t'<< A.GetI(i)<<endl;
}
int main ()
{
Masiv D,C,G;
int el=0;
cout<<"Vvedite elementy massiva\n";
for (int i=0;i<Size;i++)
{
// cin>>el;
D.SetI(i,i);}
viev(D);
D>C;
cout<<"NewMass\n";
viev(C);
return 0;
}[/CODE]
Помогите разобраться. Заранее спасибо. Делается всё в MS Visual C++
Вот мой код:
<!--shcode--><pre><code class='код'>#include
<iostream>
using namespace std;
//int const Size =5; // размер масива
class Masiv{
//private :
//int size1;
public:
int Size1;
int M[];
Masiv() {};
~Masiv(){};
void SetI(int Data,int i);
int GetI(int i){return M;}
int getSize(int Size);
Masiv operator>(Masiv &);
};
int Masiv::getSize(int Size)
{
Size1=Size;
return Size1;
}
void Masiv::SetI(int Data,int i){
M=Data;
}
Masiv Masiv:perator>(Masiv &V){
// Masiv B;
for (int i=0;i<Size; i++)
V.SetI(GetI(i),i);
return V;
}
void viev(Masiv A){
for (int i=0;i<Size;i++)
cout << i<<'\t'<< A.GetI(i)<<endl;
}
int main ()
{
Masiv D,C,G;
int el=0;
cout<<"Vvedite elementy massiva\n";
for (int i=0;i<Size;i++)
{
// cin>>el;
D.SetI(i,i);}
viev(D);
D>C;
cout<<"NewMass\n";
viev(C);
return 0;
}[/CODE]
Помогите разобраться. Заранее спасибо. Делается всё в MS Visual C++