gpt4 book ai didi

内部类的 C++ vector

转载 作者:行者123 更新时间:2023-11-28 00:46:20 24 4
gpt4 key购买 nike

所以我有一个头文件 Graph.h。在该头文件中,我声明了一个 vector 。

std::vector<Vertex*> vertexList;

这个 vector 的元素是指向 Vertex 的指针类型,它是 Graph 的一个内部类。据我所知,这迫使我要么在 header 中定义 Vertex 类,要么完全忘记将其作为内部类。

我真正想做的只是在 Graph.cpp 文件中定义这个 Vertex 类。我该怎么做?

我希望我的问题很清楚。我来自 Java 世界,那里的事情更简单。

最佳答案

如果您谈论的是实际上必须实现 Vertex 的所有方法,您可以在 .cpp 文件中使用与 Graph 类相同的方式进行范围界定: //图表.h 类图 {

  Graph();

class Vertex {
Vertex();
}

vector<Vertex*> vertexList;
};

//graph.cpp
Graph::Graph() {

//...
}

Graph::Vertex::Vertex() {
//...

}

如果你希望 Vertex 的整个定义只在 .cpp 文件中,你可以使用前向声明:

//graph.h
class Vertex; //forward declaration
class Graph {

Graph();

vector<Vertex*> vertexList;
};

//graph.cpp
class Vertex {
Vertex();

}

Vertex::Vertex() {...}

Graph::Graph() {...}

关于内部类的 C++ vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16127154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com