#ifndef COMMUNICATIONNETWORK_H
#define COMMUNICATIONNETWORK_H
#include <iostream>
struct City{
std::string cityName;
std::string message;
City *next;
City(){}; // default constructor
City(std::string initName, City *initNext, std::string initMessage)
{
cityName = initName;
next = initNext;
message = initMessage;
}
};
class CommunicationNetwork
{
public:
CommunicationNetwork();
~CommunicationNetwork();
void addCity(std::string, std::string);
void buildNetwork();
void transmitMsg(char *); //this is like a string
void printNetwork();
protected:
private:
City *head;
City *tail;
};
#endif // COMMUNICATIONNETWORK_H
我只是想知道这个.h究竟做了什么/设置,以及我必须如何在我的通信网络中进行.cpp以及我的主要.cpp来构建给定城市的列表。
注意:这段代码最终应该能够将城市添加到列表中,打印出链表中的城市并传输消息,但我目前只是对尝试创建链表感兴趣。
正如我所看到的CommunicationsNetwork.h
有结构体和类的声明,所以CommunicationsNetwork.cpp
必须定义 class CommunicationNetwork
的所有成员方法,如下所示:
#include "CommunicationNetwork.h"
. . . // some other #include directives
CommunicationNetwork::CommunicationNetwork(){
. . .
}
. . .
void CommunicationNetwork::printNetwork()
{
. . .
}
要在您需要main.cpp
中使用类和City
CommunicationNetwork
结构,请执行以下操作:
- 将 h 文件作为
#include "CommunicationNetwork.h"
包含在main.cpp
中 - 使用
main.cpp
编译CommunicationsNetwork.cpp
(即在一个二进制文件中链接已编译的文件(
如果你还没有CommunicationsNetwork.cpp
并且你的任务是为类CommunicationsNetwork
的方法编写定义,你必须从为所有操作设计算法开始(我的意思是,考虑如何构建网络,如何添加城市等(。
默认构造函数可以是:
CommunicationNetwork::CommunicationNetwork()
{
head = NULL;
tail = NULL;
}
析构函数(即 CommunicationNetwork::~CommunicationNetwork()
( 必须从列表中删除所有元素,并释放分配给元素存储的内存。
请记住在将城市添加到网络时检查head
和tail
的值(添加到空列表可能略有不同,因为在第一个元素之后,head
也是一个tail
(。
所以,开始写代码,祝你好运!