class Store store уже определен в main.obj
Нужна помощь с запуском простого проекта. Суть такая: есть файл main.cpp
, туда добавляю модуль State, внутри которого должен храниться инстанс класса Store
. Но при запуске выдает ошибку:
class Store store уже определен в main.obj"
Структура кода такая:
файл main.cpp
:
#include "State.cpp"
#include <stdio.h>
int main() {
printf("123");
return 0;
}
файл State.cpp
:
#include "Store.h"
Store store;
файл Store.cpp
:
#include "Store.h"
файл Store.h
:
#pragma once
class Store
{
};
Нашел подобный вопрос здесь, но у меня возникло еще больше вопросов. Как я понял нужно подключать только заголовочные файлы, а не cpp расширения. Тогда и для State
нужно завести расширение .h
, правильно? Я так понимаю если файлы Store.h
это заголовки класса, то нужно саму логику писать в Store.cpp и класс продублировать? Т.е. допустим у меня в классе есть методы, то в cpp я пишу реализацию, а в h только имя метода(сигнатуру) или как? Но тогда у меня в консоль падает ошибка: "переопределение типа class". Можете помочь что куда нужно писать и где что должно находиться?