Недавно я задал этот вопрос: создать пространство имен в С++/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)
Итак, мой вопрос: что мне нужно сделать для того, чтобы пространство имен было распознано?
Пожалуйста, дайте мне знать, какая другая информация необходима для решения проблемы.
Заранее благодарим за ваше время и терпение!:)
Компилятор С++/CLI привязан к модели построения традиционных компиляторов C и С++. Сформулированный в то время, когда килобайт памяти занимал столько места, сколько обувной. Это однопроходный компилятор, который обрабатывает один .cpp файл за раз. С компоновщиком для склеивания бит вместе.
Это означает, что вам придется использовать традиционные файлы заголовков, чтобы объявить ваши классы и директиву #include в верхней части файла исходного кода, чтобы включить его.
public ref class Pets{}
в файл заголовка (компилятору это не понравилось ... вот почему он сейчас в cpp) - любое понимание этого приветствуется! :)