Как создать правильно создать заголовочный файл для структур? Пытаюсь так, не выходит: structures.h
#ifndef LAB_8_STRUCTURES_H
#define LAB_8_STRUCTURES_H
struct Date;
struct Product;
#endif //LAB_8_STRUCTURES_H
structures.cpp
#include "structures.h"
struct Date {
int day;
int mon;
int year;
void init(int day, int mon, int year) {
this->day = day;
this->mon = mon;
this->year = year;
}
long getDays() {
int m[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
long days = (year - 1) * 365 + (year - 1) % 4;
for (int i = 0; i < mon; i++) {
days += m[i];
}
if (mon >= 1)
days++;
days += day;
return days;
}
};
struct Product {
char *name;
float weight;
float price;
Date exp;
void init(char *name, float weight, float price, Date exp) {
this->name = name;
this->weight = weight;
this->price = price;
this->exp = exp;
}
};
#endif
Так, как написано у вас - все функции-члены определены в самом объявлении структур (т.е. являются inline) - все это и должно быть в заголовочном файле. Просто вместо
struct Date;
struct Product;
внесите в заголовочный файл все то, что идет после
#include "structures.h"
в structures.cpp
- и пользуйтесь.
Вот если бы у вас в объявлении структуры было
struct Date {
int day;
int mon;
int year;
void init(int day, int mon, int year);
long getDays();
};
то это объявление должно было бы находиться в заголовочном файле, а в .cpp
-файле - реализация:
void Date::init(int day, int mon, int year) {
this->day = day;
this->mon = mon;
this->year = year;
}
long Date::getDays() {
int m[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
long days = (year - 1) * 365 + (year - 1) % 4;
for (int i = 0; i < mon; i++) {
days += m[i];
}
if (mon >= 1)
days++;
days += day;
return days;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Написать программу, в которой объявлен массив из 16000 элементов и инициализирован так, что значение элемента массива равно его порядковому...
Вот,учу списки, и не понимаю почему не выводит отсортированный список
Имеется текстовый файл, содержащий действительные числаКоличество чисел в строке может быть любым, количество строк, не превосходит 100
Добрый день, уже какое-то время изучаю Java EE и возникла потребность в deploy на удаленный сервер моего приложенияМожет кто-нибудь подскажет каких-нибудь...