Как работает пространство имен в h-файлах?

Рейтинг: -1Ответов: 1Опубликовано: 08.04.2023

Осваиваю использование h-файлов и не могу понять, как использовать пространство имен для заголовков. Есть 3 файла:

main.cpp:

#include <iostream>
#include "add.h"

using namespace std;
using namespace fr;

int main(){
    cout<<add(1,2);
}

add.cpp:

int add(int a, int b){return a+b;};

add.h:

namespace fr{
    int add(int a,int b);
}

Я понимаю, что скорее всего ошибка в add.cpp, но не понимаю как ее исправить Ошибка такая:

 undefined reference to `fr::add(int, int)'

make-файл:

all:
    g++ -o main main.cpp add.cpp

Как можно использовать пространство имен?

Компилятор - g++ mingw x32 7.3.0 ОС - Windows 10

Ответы

▲ 1Принят

Нужно в add.cpp поместить определение функции в пространство имен:

namespace fr{ int add(int a, int b){return a+b;} }