我正在尝试将 OGDF C++ 库用于项目,并希望使用该库类的受保护成员函数。因为不能直接在类或派生类之外访问受保护的成员;为了使用 Balloon Layout 类的受保护方法,我创建了一个类 A,它继承 BallonLayout 类,并从 A 类的公共函数“abc()”中调用超类的受保护函数;这样我就可以在类外使用 abc() 和类 BallonLayout 的间接保护函数。
在这里发布代码,请告诉我哪里有问题。
#include <ogdf/basic/Graph.h>
#include <ogdf/basic/graph_generators.h>
#include <ogdf/misclayout/BalloonLayout.h>
using namespace ogdf;
class OGDF_EXPORT A : public BalloonLayout{
public:
void abc(const Graph &G){
selectRoot(G);
}
};
int main()
{
int n = 5, m = 7;
Graph G;
ogdf::planarBiconnectedGraph(G, n, m);
A* a;
a->abc(G);
cout << "Done!!";
return 0;
}
它编译没有任何错误,但在运行时它给出“分段错误(核心转储)”。当我们尝试访问不在内存中的东西(对象/变量)时,就会出现这个错误。但不明白我犯了什么错误。