Никита Фирсов
Ученик
(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` предотвращает многократное включение одного и того же заголовочного файла.
- Компиляция проекта должна выполняться без ошибок, если все файлы созданы и подключены правильно.
Добавить в проект заголовочный файл 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 чтобы избежать ошибок
желательно без комментариев (//)