Пространство имен не распознается в C ++ / CLI

2

Недавно я задал этот вопрос: создать пространство имен в С++/cli? и поэтому я пытаюсь создать собственное пространство имен в С++/cli.

Но когда я использую одно и то же пространство имен в двух отдельных файлах (.cpp), пространство имен явно не распознается как одно и то же, потому что я получаю ошибки, когда пытаюсь ссылаться на другой класс в другом файле.

Вот в основном то, что у меня есть:

Pets.cpp:

namespace Animals
   {
   public ref class Pets 
     {
     public:
        List<Dog> ^vDogs;

     Pets::Pets()
        {
        vDogs = gcnew List<Dog^>();
        }

     void Pets::DoSomething()
        {
        }
     };
   }

Dog.cpp:

namespace Animals
   {
   public ref class Dog 
     {

     Dog::Dog()
        {
        }

     void Dog::DoSomething()
        {
        }
     };
   }

Дополнительная информация:

1) Файлы находятся в одной папке

2) Файлы были добавлены в существующее решение в другой папке

3) Я также пробовал using namespace Animals в любом файле, но получаю сообщение об ошибке, говорящее, что пространство имен не существует.

4) Я использую Visual Studio 2010 (fyi, если у кого-то есть способ исправить, но мне нужно сделать что-то конкретное в VS)

Итак, мой вопрос: что мне нужно сделать для того, чтобы пространство имен было распознано?

Пожалуйста, дайте мне знать, какая другая информация необходима для решения проблемы.

Заранее благодарим за ваше время и терпение!:)

Теги:
namespaces
visual-studio-2010
c++-cli

1 ответ

5
Лучший ответ

Компилятор С++/CLI привязан к модели построения традиционных компиляторов C и С++. Сформулированный в то время, когда килобайт памяти занимал столько места, сколько обувной. Это однопроходный компилятор, который обрабатывает один .cpp файл за раз. С компоновщиком для склеивания бит вместе.

Это означает, что вам придется использовать традиционные файлы заголовков, чтобы объявить ваши классы и директиву #include в верхней части файла исходного кода, чтобы включить его.

  • 0
    Хорошо, поэтому я попытаюсь переключиться на файл заголовка ... хотя я осторожен из-за проблем, которые у меня были в прошлом с помещением public ref class Pets{} в файл заголовка (компилятору это не понравилось ... вот почему он сейчас в cpp) - любое понимание этого приветствуется! :)
  • 1
    Я не знаю, что это значит. Рассматривали ли вы чтение книги о программировании на C ++ / CLI, а не пытались сделать это несколько случайно?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню