[Homeros] отличия синтаксиса C++ Re: [OFTOPIC] I: Популярность языков программирования

Sokolov Aleksandr masterklavir на gmail.com
Ср Апр 7 16:41:22 UTC 2010


   Привет всем!

"Michael Pozhidaev" <msp at altlinux.ru> Пишет:

> Ничего никому не хочу доказать, просто для точной информации,
> для правильного понимания панорамы.

   Вот и я пользуясь случаем хочу спросить:
Вот, для учебного процесса понадобилось писать на C++ всякие программки, 
ниже приведу некоторые тексты, на которые ругается gcc.
  так как у нас остро стоит проблема с лигализацией софта, то решил 
попробовать всё это в линухе, как выяснилось не очень удачно.
Пришлось компилировать в винде, старым борландовским компилятором для доса.

#include <iostream.h>

class mas
{
protected:
int N;
float* m;
public:
mas (): N(0),m(0) {};
mas (int n): N (n) {m=new float[N];}
int& GetN()
{return N;}
float* GetM ()
{return m;}

void show ();
~mas ()
{delete[]m;}
virtual float calc()=0;
};
void mas:: show()
{
for (int i=0; i<N; ++i)
cout << m[i] << "  ";
cout << endl;
}
class masSred : public mas
{
protected:
float Sred;
public:
masSred (int a): mas (a){}
virtual float calc ()
{
float sum=0;
for(int i=0; i<N;++i)
sum=sum+m[i];
Sred=sum/N;
return Sred;
}
};
class masMax: public mas
{
protected:
float Max;
public:
masMax(int a):mas(a){}
masMax(){}
virtual float calc()
{
Max=m[0];
for(int i=0;i<N;++i)
if(m[i]>Max)
Max=m[i];
return Max;
}
};
class masMaxSred: public masSred, public masMax
{
public: masMaxSred (int a): masSred (a){}
};
class masSort: public mas
{
public:
float calc ()
{
}

xx masSort()
{
}
masSort (int);
void Sort();
};
masSort:: masSort (int n)
{
N=n;
m=new float [n];
for (int i=0; i<N; ++i)
m[i]=N-i;
}
void masSort:: Sort()
{
float buf;
for (int i=1; i<N;++i)
for (int j=N-1; j>=i;--j)
if (m[j-1] > m[j])
{
buf=m[j];
m[j]=m[j-1];
m[j-1]=buf;
}
}
 int main()
 {
 masSred obj1(10);
 for(int i=0; i<obj1.GetN();++i)
 cin >> obj1. GetM ()[i];
 cout <<"sred znach"<< obj1. calc()<<endl;
 masMax obj2(7);
 for(i=0; i<obj2. GetN();++i)
 cin >> obj2. GetM()[i];
 cout << "znach max"<< obj2. calc()<<endl;

 mas* p;
 p=& obj1;
 cout << "sred znach" << p-> calc()<<endl;
 p=& obj2;
 cout << "srednee znach ravno" << p-> calc()<<endl;
 masSort obj3(8);
 obj3. show ();
 obj3. Sort ();
 obj3. show ();
 return 0;
 }

   но, что касается cout, то я там написал просто чтобы заполнить место,так 
что на это можно внимания не обращать. А вот на эти классы gcc почемуто 
ругался, но отлаживать времени не было, мож кто на вскидку скажет что 
подкрутить, и какие оттличия надо учесть для компиляторов gcc и ему 
подобных.

--
   С уважением Соколов Александр 



Подробная информация о списке рассылки Homeros