В системе есть два файла заголовка, мне нужно включить эти два файла заголовка для взаимодействия с системой, два файла заголовка agentRegistrationUnion
и counterCollectUnionContent.h
эти два файла заголовок не содержат в себе ничего особенного, но только два объединения, но эти два союза имеет такое же имя, единственное различие заключается содержанием профсоюзов, профсоюзы выглядеть следующим образом:C++, возможно, иметь два объединения с одинаковым именем в разных файлах заголовков
union SIGNAL
{
struct s1 ss1;
struct s2 ss2;
......
};
Я m не смог изменить эти файлы заголовков, когда я включил эти файлы заголовков, я получил error: redefinition of 'union SIGNAL'
, как я могу иметь оба союза в своем коде?
мой файл заголовка:
#include <vector>
#include <map>
#include <string>
#include <stdint.h>
#include "agentRegistrationUnion.h" //I only want to separate these two files
#include "counterCollectUnion.h"
using namespace std;
class InvalidSig;
struct args{
InvalidSig* context;
string mname;
union SIGNAL *content;
};
class InvalidSig{
public:
InvalidSig();
~InvalidSig();
void Send_inval_sig();
void Kill_proc();
bool InitAttacker(char *argv);
void LocateVictims();
itc_msg* AllocMsg(union SIGNAL *content);
void PrintVictims(itc_mbox_id_t vic);
void *sendmsg(void *mname);
static void *sendmsg_helper(void *ar){
string n = ((args*)ar)->mname;
return ((args*)ar)->context->sendmsg(&n);
};
multimap<string,string> mboxes;
union SIGNAL *content;
};
Почему бы не разместить эти два заголовка в разных пространствах имен? –
@PaulR Хорошо, я новичок в C++, я буду копать, как это сделать, спасибо. – user4016367
@PaulR Не могли бы вы написать ответ, как это сделать, в моем заголовочном файле, я хочу только отделить все, все остальные коды должны быть разделены. – user4016367