Код:
/*программа динамически инициализирует матрицу 3 на 3. Считает сумму соответствующих элементов первых двух столбцов(1 производный класс). Подсчитывает количество отрицательных и положительных елементов(2 производный класс) */
#include <iostream>
using namespace std;
class First{
protected:
int** mas;
public:
//Конструктор
Ашкые(){
//Выделим память под 3 столбца и 3 строчки
mas = new int*[3]; // 3 строки
for (int i=0; i <3; i++){
mas[i] = new int[3]; }// 3 стлб
//Считываем массив
cout<<"Vvedit matrix: \n";
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
cin>>mas[i][j];
}
}
}
biba (const biba& obj) {//конструктор копирования
mas = new int*[3]; // новая копия
for (int i=0; i <3; i++)
mas[i] = new int[3];
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
mas[i][j]=obj.mas[i][j];}}
}
~biba(){//деструктор
for (int i=0; i<3; i++){ delete[] mas[i];
delete[] mas;
}
}
};
class Second:public First{
public:
void funct1(){
for(int i=0; i<3; i++){
cout<<mas[i][0]<<" + "<<mas[i][1]<<" = "<<mas[i][0]+mas[i][1]<<"\n";
}
}
};
class third:public Second{
public:
void funct2(){
int dod=0, vid=0;
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
if(mas[i][j]<0){
vid++;
}else
if(mas[i][j]>0){
dod++;
}
}
}
cout<<"Dodatni: "<<dod<<"\n";
cout<<"Videmni: "<<vid<<"\n";
}
};
int main(){
third mas;
mas.funct1();
mas.funct2();
system("PAUSE");
return 0;
}
Помогите переделать под программку с динамическими классами, переопределяющимеся функциями, виртуальными функциями, дружественными функциями, перегрузкой конструкторов базового класса. Спасибо)) Если действий для использования всего вышесказанного не хватит можно одни и те же действия делать понескольку раз. Спасибо за потраченное время. +1 каждому))