Форум программистов, компьютерный форум CyberForum.ru

Определение перечисления (enum) в другом файле - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Denis.
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 20
02.09.2012, 23:10     Определение перечисления (enum) в другом файле #1
Доброго времени суток! Вот мой вопрос: в классе A мне необходимо использовать перечисление B, но объявление и определение класса находятся в разных файлах. Можно ли сначала объявить перечисление, а определить в другом файле и, если можно, как это сделать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// file a.h
// Объявление класса
 
сlass A
{
   public:
      A() { }
      enum B { };
};
 
 
// file a.cpp
// Определение класса
 
A::A()
{
   // ...
}
 
// Здесь должно быть определение перечисления B
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PSIAlt
 Аватар для PSIAlt
86 / 86 / 8
Регистрация: 19.06.2012
Сообщений: 245
02.09.2012, 23:13     Определение перечисления (enum) в другом файле #2
До C++11 нельзя. http://stackoverflow.com/questions/7...g-an-enum-in-c
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
02.09.2012, 23:17     Определение перечисления (enum) в другом файле #3
так подключите файл с перечислением B, а в классе просто создайте переменную типа B
header.h
C++
1
enum Color { red, green, blue };
source.cpp
C++
1
2
3
4
5
6
7
8
#include "header.h"
 
class Monstr{
public:
    Color getColor() const{};
private:
    Color color;
};
Denis.
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 20
02.09.2012, 23:33  [ТС]     Определение перечисления (enum) в другом файле #4
Цитата Сообщение от panicwassano Посмотреть сообщение
так подключите файл с перечислением B, а в классе просто создайте переменную типа B
Спасибо, так и сделаю, просто интересовала возможность определения позже.
Yandex
Объявления
02.09.2012, 23:33     Определение перечисления (enum) в другом файле
Ответ Создать тему
Опции темы

Текущее время: 23:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru