Список игнорируемых файлов хранится в свойстве. Используйте svn proplist , чтобы показать свойства каталога.
Затем вам нужно поместить определение функции в заголовок. Самый простой способ указать компилятору встроить его - включить тело метода в объявление класса, например:
class NeedleUSsim
{
// ...
int GetTplLSize() const { return sampleDim[1]; }
// ...
};
или, если вы настаиваете на отдельном объявлении и определении:
class NeedleUSsim
{
// ...
int GetTplLSize() const;
// ...
};
inline int NeedleUSsim::GetTplLSize() const
{ return sampleDim[1]; }
Определение должно быть видимым в каждой единице перевода, которая использует это метод.
из C ++ FAQ Lite
Если вы поместите встроенную функцию определение в файл .cpp, и если оно вызывается из другого файла .cpp, вы получите "неразрешенный внешний" ошибка компоновщика.
Как уже указывали другие, вам нужно переместить определение встроенной функции в файл заголовка, например:
class NeedleUSsim
{
// ...
inline int GetTplLSize() { return sampleDim[1]; }
// ...
};
Причина в том, что компилятор должен знать, что код для встраивания, когда он видит вызов встроенной функции. Если вы оставите определение функции в файле .cpp для класса NeedleUSsim, код, созданный для него компилятором, окажется в объектном файле NeedleUSsim. Поскольку компилятор только читает исходный код - он никогда не заглядывает в объектный файл другого класса - у него просто нет способа узнать, каким кодом заменить вызов при компиляции другого файла .cpp.
См. Идиому макроса встроенной защиты . Это, по крайней мере, позволит вам отделить, хотя и немного, код от объявления. Он также позволяет переключать встраивание функций с помощью определения
.
Если у вас есть встроенная функция, вы должны поместить определение в файл заголовка.