как связать файлы заголовков в C ++

Я новичок в программировании на C ++ с помощью файлов заголовков. Это мой текущий код:

//a.h
#ifndef a_H
#define a_H
namespace hello
{
  class A
  {
    int a;
    public:
      void setA(int x);
      int getA();
  };
} 
#endif

//a.cpp
#include "a.h"
namespace hello
{
   A::setA(int x)
  {
    a=x;
  }
  int A::getA()
  {
    return a;
  }
}

//ex2.cpp
#include "a.h"
#include<iostream>
using namespace std;

namespace hello
{
  A* a1;
}
using namespace hello;
int main()
{
  a1=new A();
  a1->setA(10);
  cout<<a1->getA();
  return 1;  
}

Когда я пытаюсь скомпилировать его с помощью g ++ ex2.cpp , я получаю следующую ошибку:

In function `main':
ex2.cpp:(.text+0x33): undefined reference to `hello::A::setA(int)'
ex2.cpp:(.text+0x40): undefined reference to `hello::A::getA()'
collect2: ld returned 1 exit status

Почему он не работает и как я могу это исправить?

5
задан Fund Monica's Lawsuit 20 November 2015 в 03:27
поделиться