class adress
{
private:
char name[100]; //имя
char street[100]; //улица
int house; //номер дома
public:
adress();
adress(char *pName, char *pStreet, int House);
~adress();
void Print(); //вывод информации об объекте на экран
void Input(); //ввод данных с клавиатуры
};
adress::adress()
{
strcpy_s(name, "no name");
strcpy_s(street, "no adress");
house = 0;
}
//инициализация полей класса Adress с помощью конструктора с аргументами
adress::adress(char *pName, char *pStreet, int House)
{
strcpy_s(name, pName);
strcpy_s(street, pStreet);
house = House;
}
//деструктор с объявлением действия удаления
adress::~adress()
{
cout << "Delete object..." << endl;
}
//функция вывода данных на экран
void adress::Print()
{
cout << "Information about object" << endl;
cout << "Name: " << name << endl;
cout << "Street: " << street << endl;
cout << "Number of house: " << house << endl;
}
//функция ввода данных класса пользователем с клавиатуры
void adress::Input()
{
cout << "Enter informaition about object" << endl;
cout << "Enter name: ";
gets_s(name); //используем функцию gets для ввода строки с пробелами
cout << "Enter street: ";
cin >> street;
cout << "Enter number of house: ";
cin >> house;
}
class list
{
private:
int n; //размер массива
adress *p; //указатель на массив
public:
list(int a);
~list();
void Print(); //вывод данных на экран
int Size(); //возвращает размер массива
void PutAdress(int i, adress& adr); //функция заносит объект adr типа adress в i-й элемент массива
adress& GetAdress(int i); //функция возвращает объект типа adress из i-го элемента массива
};
list::list(int a)
{
n = a;
p = new adress[n];
}
list::~list()
{
delete[]p;
cout << "Delete object of class list" << endl;
}
int list::Size()
{
return n;
}
void list::Print() //вывод на экран, по заданию надо использовать функцию Print класса adress...
{
for (int i = 0; i < n; i++)
{
&adress::Print;
}
}
//функция заносит объект adr типа adress в i-й элемент массива
void list::PutAdress(int i, adress &adr)
{
int s = sizeof(adress);
*(p+(s*(i))) = adr;
}
int main()
{
//создание объекта типа list размером 3 записи
list List(3);
//заполнение массива данными
for (int i = 0; i < 3; i++)
{
adress adr1("Ivanov Ivan Ivanovich", "Lenina", 60, "Tomsk");
List.PutAdress(i, adr1);
}
//вывод массива на экран
List.Print();
return 0;
}
void list::Print() //вывод на экран, по заданию надо использовать функцию Print класса adress...
{
for (int i = 0; i < n; i++)
{
p[i].Print();
}
}
//функция заносит объект adr типа adress в i-й элемент массива
void list::PutAdress(int i, adress &adr)
{
p[i] = adr;
}
void list::Print() //вывод на экран, по заданию надо использовать функцию Print класса adress...
{
for (int i = 0; i < n; i++)
{
p[i].Print();
}
}
//функция заносит объект adr типа adress в i-й элемент массива
void list::PutAdress(int i, adress &adr)
{
p[i] = adr;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.