c ++中的重复符号__ZN4ArmeC1Ev错误

Bet*_*ish 1 c++ qt g++

我是Qt的c ++编程新手.我做两个班Personnage和Arme.我有5个文件Personnage.h,personnage.cpp,Arme.h和Arme.cpp

Arme.h

#ifndef ARME_H
#define ARME_H
#include<iostream>
class Arme
{
public:
Arme();
Arme(int m_idArme,std::string m_nomArme);
void armeAffich() const;
public:
int idArme;
std::string nomArme;
};
#endif // ARME_H
Run Code Online (Sandbox Code Playgroud)

Arme.cpp

#include "Arme.h"
#include<string>
#include<iostream>
using namespace std;
Arme::Arme():idArme(0),nomArme(0)
{

}
Arme::Arme(int m_idArme,string m_nomArme)
{
idArme=m_idArme;
nomArme=m_nomArme;
}

void Arme::armeAffich() const
{
cout<<"identifiant d'arme"<<idArme<<endl;
cout<<"nom d'arme"<<nomArme<<endl;
}
Run Code Online (Sandbox Code Playgroud)

Personnage.h

#ifndef PERSONNAGE_H
#define PERSONNAGE_H
#include "Arme.h"
class Personnage
{
Personnage(std::string nom,std::string prenom);
Personnage();
~Personnage();
void affichPers() const;
public:
std::string nomPers;
std::string prenomPers;
Arme *arme;
};
#endif // PERSONNAGE_H
Run Code Online (Sandbox Code Playgroud)

Personnage.cpp

#include "Arme.h"
#include<string>
#include<iostream>
using namespace std;
Arme::Arme():idArme(0),nomArme(0)
{

}
Arme::Arme(int m_idArme,string m_nomArme)
{
idArme=m_idArme;
nomArme=m_nomArme;
}

void Arme::armeAffich() const
{
cout<<"identifiant d'arme"<<idArme<<endl;
cout<<"nom d'arme"<<nomArme<<endl;
}
Run Code Online (Sandbox Code Playgroud)

在main.cpp文件中,输入两条仅用于编译的指令.

#include"Personnage.h"
#include<iostream>
using namespace std;
int main()
{
    cout<<"Hello word!";
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

当我编译时,我得到这些错误:

duplicate symbol __ZN4ArmeC1Ev in:
    Arme.o
    Personnage.o
duplicate symbol __ZN4ArmeC2Ev in:
    Arme.o
    Personnage.o
duplicate symbol __ZN4ArmeC1EiSs in:
    Arme.o
    Personnage.o
duplicate symbol __ZN4ArmeC2EiSs in:
    Arme.o
    Personnage.o
duplicate symbol __ZNK4Arme10armeAffichEv in:
    Arme.o
    Personnage.o
ld: 5 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [ExempleClasses] Error 1
18:55:46: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project ExempleClasses (kit: Desktop Qt 5.2.0 clang 64bit)
When executing step 'Make'
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

Mat*_*son 5

在你的帖子中:

Personnage.cpp

#include "Arme.h"
#include<string>
#include<iostream>
using namespace std;
Arme::Arme():idArme(0),nomArme(0)
{

}
Run Code Online (Sandbox Code Playgroud)

当然你真的不想Arme::Arme在Personage.cpp中重复吗?