我正在学习 C++ 并且在使用类方面非常新,我在尝试使用它们时感到非常困惑。我正在尝试转换我现有的代码(使用结构),以便它使用类 - 所以虽然我知道我正在尝试做什么,但我不知道我是否做得正确。
有人告诉我,当使用类中的函数时,我首先需要实例化该类的一个对象。所以我在我的主要功能中尝试过的(一个片段)是:
int main()// line 1
{
string message_fr_client = "test"; //line2
msgInfo message_processed; //line 3
message_processed.incMsgClass(message_fr_client); //line 4
if (!message_processed.priority_check(qos_levels, message_processed)) //line 5
cout << "failure: priority level out of bounds\n"; //line 6
return 0; //line 7
}
你能帮我澄清一下我的以下假设是否正确吗?编译器没有显示任何错误,所以我不知道它是否没有错误,或者是否有错误潜伏在下面。
- 在第 4 行,函数
incMsgClass
是否在字符串上执行message_fr_client
并返回结果(和修改)message_processed
? - 在第 5 行,函数
priority_check
正在执行message_processed
并返回一个布尔值? - 在我的类定义中,我有一个
getPath
旨在修改值的函数nodePath
- 只是使用的问题message_processed.getPath(/*arguments*/)
吗?
我没有包含函数的主体,因为我知道它们可以工作——我只想了解类函数是如何交互的。请让我知道我是否可以更清楚 - 只是想在这里消除一些混乱。
这是我的课:
#ifndef clientMsgHandling_H
#define clientMsgHandling_H
#include <list>
#include <map>
#include <queue>
class msgInfo
{
public:
msgInfo();
msgInfo(int, int, int, std::string, std::list<int>);
/*classifying message*/
msgInfo incMsgClass(std::string original_msg);
/*message error checks*/
bool priority_check(int syst_priority, msgInfo msg); //check that message is within qos levels
bool route_check(std::map<std::pair<int, int>, int> route_table, msgInfo msg); //check that route exists
void getPath(msgInfo msg, std::map<std::pair<int, int>, int> route_info, int max_hop);
private:
int source_id;
int dest_id;
int priority;
std::string payload;
std::list<int> nodePath;
};
#endif