Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C++ помогите пожалуйста

Ядерный Реактор Ученик (178), на голосовании 2 месяца назад
В новый проект добавить файл Source.cpp. Создать класс Animal добавить три поля, три метода и три конструктора. В функции main создать пять объектов и для одного объекта вызвать все методы класса.
Добавить в проект заголовочный файл Animal.h и перенести в него класс Animal. Добавить в файл Source.cpp строчку #include “Animal.h”.
Добавить в проект файл ресурсов Animal.cpp. Перенести реализацию всех методов класса Animal в файл Animal.cpp. Как связать между собой Animal.cpp и Animal.h?
Добавить в проект заголовочный файл Info.h и написать в этом файле функцию info(const Animal& a) внутри которого написать sizeof(a) (Не забывайте что для работы с классом Animal в этот файл нужно подключить Animal.h). Добавить в файл с функцией main строчку #include “Info.h”. Вызвать метод info для каждого объекта класса Animal.
Во всех заголовочных файлах используйте #pragma once чтобы избежать ошибок

желательно без комментариев (//)
Голосование за лучший ответ
Никита Фирсов Ученик (214) 3 месяца назад
Создание проекта с описанными требованиями включает создание и редактирование нескольких файлов. Вот как можно выполнить эту задачу:

### 1. Создание и редактирование файлов

#### Файл `Animal.h`

```cpp
#pragma once

class Animal {
private:
int age;
double weight;
std::string name;

public:
Animal();
Animal(int age);
Animal(int age, double weight, const std::string& name);

void setAge(int age);
void setWeight(double weight);
void setName(const std::string& name);

int getAge() const;
double getWeight() const;
std::string getName() const;
};
```

#### Файл `Animal.cpp`

```cpp
#include "Animal.h"
#include <string>

Animal::Animal() : age(0), weight(0.0), name("Unnamed") {}

Animal::Animal(int age) : age(age), weight(0.0), name("Unnamed") {}

Animal::Animal(int age, double weight, const std::string& name) : age(age), weight(weight), name(name) {}

void Animal::setAge(int age) {
this->age = age;
}

void Animal::setWeight(double weight) {
this->weight = weight;
}

void Animal::setName(const std::string& name) {
this->name = name;
}

int Animal::getAge() const {
return age;
}

double Animal::getWeight() const {
return weight;
}

std::string Animal::getName() const {
return name;
}
```

#### Файл `Info.h`

```cpp
#pragma once
#include "Animal.h"

void info(const Animal& a) {
std::cout << "Size of Animal object: " << sizeof(a) << " bytes" << std::endl;
}
```

#### Файл `Source.cpp`

```cpp
#include <iostream>
#include "Animal.h"
#include "Info.h"

int main() {
Animal a1;
Animal a2(5);
Animal a3(3, 15.5, "Lion");
Animal a4(2, 10.0, "Tiger");
Animal a5(4, 20.0, "Elephant");

a1.setAge(1);
a1.setWeight(5.5);
a1.setName("Dog");

std::cout << "Animal a1: " << a1.getName() << ", Age: " << a1.getAge() << ", Weight: " << a1.getWeight() << std::endl;

info(a1);
info(a2);
info(a3);
info(a4);
info(a5);

return 0;
}
```

### 2. Инструкции по связке файлов
1. `Animal.h` содержит объявление класса `Animal`.
2. `Animal.cpp` содержит реализацию методов класса `Animal`.
3. `Info.h` содержит функцию `info` и подключает `Animal.h` для доступа к классу `Animal`.
4. В `Source.cpp` подключаются `Animal.h` и `Info.h`, и выполняется основной код.

### 3. Примечания
- Убедитесь, что все файлы находятся в одном проекте.
- Использование `#pragma once` предотвращает многократное включение одного и того же заголовочного файла.
- Компиляция проекта должна выполняться без ошибок, если все файлы созданы и подключены правильно.
fufickgodЗнаток (272) 3 месяца назад
можно сразу совмещенную версию ?
Похожие вопросы