|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
11.09.2018, 21:58 | #1 (permalink) |
Новичок
Регистрация: 19.05.2017
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Массив указателей на объекты класса C++
Создать массив указателей на объекты класса, описывающего насекомых (количество ног, наличие крыльев, цвет и т.д.). Создать новый массив указателей на объекты с летающими насекомыми. Была идея, 1. создать класс насекомое, описать объекты - ноги, крылья, цвет и т.д 2. сделать массив таких классов (вроде бы получилось) А дальше с этими указателями ничего не понимаю. Указатель на класс нужно делать или как сделать к объектами, да еще и массив ???????? А если делать указатель на класс, то как потом вытащить оттуда наличие крыльев, это же объект??? Помогите пожалуйста Попытки были, 2ой день сижу(( Header.h Код:
#define insect_hpp #include <iostream> using namespace std; enum colortype { зеленый = 1, коричневый, мультицвет }; enum nametype { жук = 1, клоп, муравей, гусеница, бабочка }; class insect { public: insect(); void Print(); unsigned insect::Setinsect(nametype name, int paw, int wing, colortype color); private: int paw; //количество лап int wing; // количество крыльев colortype color; //цвет nametype name; }; /*бабочка - multicolor, 6 лап, 4 крыла гусеница - multicolor, 6 лап, 0 крыльев жук - зеленый, 6 лап, 4 крыла клоп - коричневый, 6 лап, 0 крыльев муравей - коричневый, 6 лап, 0 крыльев */ Код:
#include "stdafx.h" #include "Header.h" using namespace std; insect::insect() { this->name = nametype(05); this->paw = 6; this->wing = 4; this->color = colortype(03); } unsigned insect::Setinsect(nametype name, int paw, int wing, colortype color) { int flag = 0; this->name = name; this->paw = paw; this->wing = wing; this->color = color; return flag; } void insect::Print() { std::cout << "Название - " << name; std::cout << " крыльев - " << wing; std::cout << " лап - " << paw; std::cout << " цвет - " << color; std::cout << " \n "; } Код:
#include "stdafx.h" #include <iostream> #include "Header.h" using namespace std; int main() { setlocale(LC_ALL, "Russian"); int no = 3; int i; int w, p; nametype n; colortype c; int d; insect a[3]; for (i = 0; i < no; i++) { cout << "# название"; cin >> d; if (d == 1) { n = nametype(1); } if (d == 2) { n = nametype(2); } if (d == 3) { n = nametype(3); } if (d == 4) { n = nametype(4); } if (d == 5) { n = nametype(5); } cout << "крылья "; cin >> w; cout << "лапы "; cin >> p; int d2; cout << "цвет "; cin >> d2; if (d2 == 1) { c = colortype(1); } if (d2 == 2) { c = colortype(2); } if (d2 == 3) { c = colortype(3); } a[i].Setinsect(n, w, p, c); } for (i = 0; i < no; i++) { a[i].Print(); } return 0; } |
11.09.2018, 21:58 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Схожие темы должны хорошо обсуждаться Ввести массив из n чисел, разбить массив на две примерно равные части и вывести числа Нужно сравнить два массива указателей типа char обнаружены объекты Объекты |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|