Массив указателей на объекты класса C++
Хелп. Помогите пожалуйста. Не могу понять задание
Создать массив указателей на объекты класса, описывающего насекомых
(количество ног, наличие крыльев, цвет и т.д.). Создать новый массив указателей на объекты с летающими насекомыми.
Была идея,
1. создать класс насекомое, описать объекты - ноги, крылья, цвет и т.д
2. сделать массив таких классов (вроде бы получилось)
А дальше с этими указателями ничего не понимаю. Указатель на класс нужно делать или как сделать к объектами, да еще и массив ????????
А если делать указатель на класс, то как потом вытащить оттуда наличие крыльев, это же объект???
Помогите пожалуйста
Попытки были, 2ой день сижу((
Header.h
Source.cpp
main.cpp
Хелп. Помогите пожалуйста. Не могу понять задание
Создать массив указателей на объекты класса, описывающего насекомых
(количество ног, наличие крыльев, цвет и т.д.). Создать новый массив указателей на объекты с летающими насекомыми.
Была идея,
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 крыльев
*/
Source.cpp
Код:
#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 ";
}
main.cpp
Код:
#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;
}