PHP: #include<iostream.h> #include<conio.h> class tv { private: char *marka; float cina; char *zavod; float diag; public: friend istream &operator>>(istream &is, tv &x); friend ostream &operator<<(ostream &os, tv &x); tv() { marka=new char[15]; zavod=new char[15]; } ~tv() { delete[]marka; delete[]zavod; } }; istream &operator>>(istream &is, tv &x) { cout<<"VVedite marku TV: "<<endl; is>>x.marka; cout<<"Vvedite cinu TV: "<<endl; is>>x.cina; cout<<"Vvedite zavod-proizvoditel': "<<endl; is>>x.zavod; cout<<"VVedite diagonal' ekrana: "<<endl; is>>x.diag; return is; } ostream &operator<<(ostream &os, tv &x) { os<<"Marka TV: "<<x.marka<<"\n"; os<<"Cina TV: "<<x.cina<<"\n"; os<<"Zavod-proizodotel': "<<x.zavod<<"\n"; os<<"Diagonal' ekrana: "<<x.diag<<"\n"; return os; } void main () { clrscr(); tv *mass; mass=new tv[2]; for (int i=0;i<sizeof(mass);i++) { tv q; cin>>q; mass[i]=q; } for (int j=0;j<sizeof(mass);j++) { cout<<mass[j]; } } Задание: Телевизоры х-ются параметрами: марка, цена, диагональ, завод-производитель, стоимость. Нужно создать массив из n-го количества таких телевизоров и вывести его. Также нужно реализовать такое: юзер вводит диагональ, марку, цену, завод и из массива вывести телевизоры с этими параметрами. Вот я набросал прогу. Она работает, но поля типа char из класса выводятся непонятными символами. Почему? Также как реализовать последнее с выбором юзера?
PHP: float yourcina; cout<<"Vvedite cenu dlja poiska: "<<endl; cin>>yourcina; for (int k=0;k<1;k++) { if (mass[k].cina==yourcina) { cout<<"!"; } } Пишет: tv::cina is not accessible
Сделал сам короче))) PHP: #include<string.h> #include<iostream.h> #include<conio.h> class tv { private: char *marka; float cina; char *zavod; float diag; public: friend istream &operator>>(istream &is, tv &x); friend ostream &operator<<(ostream &os, tv &x); friend void uservvod(tv &x); tv() { marka=new char[15]; zavod=new char[15]; } ~tv() { delete[]marka; delete[]zavod; } }; istream &operator>>(istream &is, tv &x) { cout<<"VVedite marku TV: "<<endl; is>>x.marka; cout<<"Vvedite cinu TV: "<<endl; is>>x.cina; cout<<"Vvedite zavod-proizvoditel': "<<endl; is>>x.zavod; cout<<"VVedite diagonal' ekrana: "<<endl; is>>x.diag; return is; } ostream &operator<<(ostream &os, tv &x) { os<<"Marka TV: "<<x.marka<<"\n"; os<<"Cina TV: "<<x.cina<<"\n"; os<<"Zavod-proizodotel': "<<x.zavod<<"\n"; os<<"Diagonal' ekrana: "<<x.diag<<"\n"; return os; } void uservvod(tv &x) { char user_zavod[10]; float user_cina, user_diag; cout<<"\n\nPois. Vvedite zavod, cinu, diagonal':"<<'\n'; cin>>user_zavod>>user_cina>>user_diag; for (int i;i<2;i++) { if((strncmp(x.zavod,user_zavod,10))&&(x.cina<=user_cina)&&(x.diag>=user_diag)) cout<<"Marka: "<<x.marka<<" Zavod: "<<x.zavod<<" Cina: "<<x.cina<<" Diagonal': "<<x.diag<<'\n'; else cout<<"Nichego ne naideno"<<'\n'; } } void main () { clrscr(); tv *mass; mass=new tv[1]; for (int i=0;i<1;i++) { tv q; cin>>q; mass[i]=q; } for (int j=0;j<1;j++) { cout<<mass[j]; } for (int k=0;k<1;k++) { uservvod(mass[k]); } }
прошу прощения но я не понял этот кусок кода PHP: tv *mass; mass=new tv[2]; можешь расказать что тут происходит?