Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 09.12.2017
Сообщений: 14
1

Как сделать общий объект класса в нескольких файлах?

09.12.2017, 12:50. Показов 867. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, у меня есть три cpp файла:
commands.cpp(класс)
map.cpp(класс)
ConsoleApplication.cpp - main
Мне нужно сделать так, чтобы можно было обращаться к одному и тому же объекту (map obj) и в ConsoleApplication и в commands.cpp

Добавлено через 5 минут
Уже нашел ответ.
В commands.h объявил, что в commands.cpp находится объект map karta;
А в ConsoleApplication.cpp вызываю commands.karta.userx и т.п.

Добавлено через 9 минут
Теперь новая проблема.
Код в commands.h:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once
#include "stdafx.h"
#include "map.h"
#include "commands.h"
#include <iostream>
#include <cstdio>
#include <string>
class commands
{
public:
 
    commands();
    map karta;
    std::string output1, output2, output3, output4, output5, output6, output7, output8;
    int changedStrings = 0, XX,YY;
    bool checkCommand(std::string answer);
    void help();
    void attack(); 
    void use();
    void move();
    void changeCoordinates(int X, int Y);
    ~commands();
};
Что выдает компилятор:

1>c:\users\alleksh_\source\repos\consoleapplication2\consoleapplication2\command s.h(13): error C3646: karta: неизвестный спецификатор переопределения
1>c:\users\alleksh_\source\repos\consoleapplication2\consoleapplication2\command s.h(13): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2017, 12:50
Ответы с готовыми решениями:

как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса?
я хотел так, но программа просто падает void Student::add(Base** head) { cout &lt;&lt; &quot;I here&quot; &lt;&lt;...

как сделать объект класса доступным в каждом модуле (cpp файле) ?
для встренных типов это делается с помощью extern.. но когда добавляю туда объект своего класса, то...

Можно ли создать объект класса с таким же именем как у самого класса?
Можно ли создать объект класса с таким же именем как у самого класса? Ну или как то обойти эту...

Как сложить объект базового класса с объектом производного(наследуемого класса)
Как умножить объект базового класса с объектом производного(наследуемого класса): ozenka - объект...

2
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
09.12.2017, 13:44 2
Цитата Сообщение от Alleksh Посмотреть сообщение
Код в commands.h:
Цитата Сообщение от Alleksh Посмотреть сообщение
C++
1
#include "commands.h"
Это зачем?
0
0 / 0 / 1
Регистрация: 09.12.2017
Сообщений: 14
09.12.2017, 14:08  [ТС] 3
ctrl+c ctrl+v, не заметил.
0
09.12.2017, 14:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2017, 14:08
Помогаю со студенческими работами здесь

как узнать,является данный объект класса А1 наследником класса А2
Всем привет)есть классы S, A1, A2, B1, B2. Иерархия наследования следующая S - Является...

Создание статической функции класса, которая принимает экземпляр этого же класса как объект
Привет. Есть такой код class Model { public: Model(); Model(int verticesSize, int facesSize);...

Как объект некоторого класса сделать доступным для использования в нескольких формах?
Т. е. есть некоторый класс A. И два класса, наследуемых от класса Form, - формы: F1 и F2. Если...

Общий объект для нескольких сессий
Какие способы существуют сделать данные общими для нескольких выполняющихся одновременно сессий?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru