[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