C++ c++;:访问抽象基类中的私有变量
长期潜伏者,第一次询问者。我正在C++中做一个关于TSP(TSP)的项目,我有一个小问题。我需要取两个节点(在这个场景中称为nodeid,它们是无符号整数),并在addEdge方法中在它们之间添加一条边。签名以及老师的一些笔记(我将在后面填写前提条件):C++ c++;:访问抽象基类中的私有变量,c++,abstract-class,private-members,traveling-salesman,C++,Abstract Class,Private Members,Traveling Salesman,长期潜伏者,第一次询问者。我正在C++中做一个关于TSP(TSP)的项目,我有一个小问题。我需要取两个节点(在这个场景中称为nodeid,它们是无符号整数),并在addEdge方法中在它们之间添加一条边。签名以及老师的一些笔记(我将在后面填写前提条件): /* *在节点u和v之间添加加权的无向边。 * *先决条件: *u和v是合法的标签(即0在本例中,Graph是基类,而不是ListGraph,因此我不确定您的描述是否准确,但据我所知,您正在实现ListGraph::addEdge()。所以您
/*
*在节点u和v之间添加加权的无向边。
*
*先决条件:
*u和v是合法的标签(即0在本例中,Graph
是基类,而不是ListGraph
,因此我不确定您的描述是否准确,但据我所知,您正在实现ListGraph::addEdge()
。所以您可以直接访问ListGraph::edgeList
我想您只是误解了这里的结构,或者我误解了
据我所知,您将在
addEdge()
中的方法
class ListGraph
这使您可以访问私有变量“edgeList”
抽象类是“Graph”类,“ListGraph”继承它。但是,ListGraph中的私有变量可用于ListGraph类
你的逻辑很好,但是我认为你误解了ut所说的“注意:这个类必须保持原样”
/* Code here */
在addEdge方法中,我确信您可以编辑它!:)基类Graph
实际上只是指定从它派生时必须提供的内容-这就是为什么它的函数是“纯虚拟的”。类ListGraph
是数据所在的位置,也是定义函数addEdge
的位置。在该功能中,您将具有对edgeList
的读/写访问权限。试试看,会有用的。你能澄清一下你的问题吗?我想您可以通过函数addEdge
访问edgeList
,并在节点之间的边缘添加权重,不是吗?我将尝试简化我的问题:在.cpp文件的类中,我有一个方法,其中我尝试从同名的.h文件访问私有变量。.cpp文件包括.h文件,方法具有ClassName::methodName,引用具有ClassName::varName,其中该var是.h文件的私有变量。
addEdge()
class ListGraph
/* Code here */