有1个主要类别和3个类别:Main
,MLME
,MAC
和Network
。
我希望在调用MAC的构造函数时在MAC对象内创建MLME对象。然后,在调用Network构造函数时,将同一对象共享给Network对象。
这不会使MLME对象成为全局对象,也不会使用malloc()
或new
分配内存。
我认为应该使用我不太了解的参考资料来完成。还可能在Network.cpp
中有一些初始化列表吗?与C ++相比,我对C的使用更为丰富,并且为了理解所有这些,已经做了很多尝试。
这是我对结构,标头和cpp文件的一些想法:
Main.cpp
#include "MAC.h"
#include "Network.h"
int main() {
MAC mac();
Network network(mac);
return 0;
}
这是要共享的MLME部分:
MLME.h
#ifndef MLME_H_INCLUDED
#define MLME_H_INCLUDED
class MLME {
public:
MLME();
};
#endif
MLME.cpp
#include "MLME.h"
MLME::MLME() {}
MAC类:
MAC.h
#ifndef MAC_H_INCLUDED
#define MAC_H_INCLUDED
#include "MLME.h"
class MAC {
private:
MLME mlme; // NULLED ?
public:
MAC();
MLME getMLME();
};
#endif
MAC.cpp
#include "MAC.h"
MAC::MAC() {
mlme = MLME:MLME();
}
MLME MAC::getMLME() {
return mlme;
}
网络类:
Network.h
#ifndef NETWORK_H_INCLUDED
#define NETWORK_H_INCLUDED
#include "MLME.h"
class Network {
private:
MLME& mlme;
public:
Network(MAC mac);
};
#endif
Network.cpp
#include "Network.h"
class MAC;
Network::Network(MAC mac) {
mlme = mac.getMLME();
}