gpt4 book ai didi

c++ - 如何在这个例子中使用 `const` ness?

转载 作者:行者123 更新时间:2023-11-30 05:21:41 61 4
gpt4 key购买 nike

我有一些实现图形算法的代码;特别是,有这些片段会导致问题:

class Path{
private:
const Graph* graph;

public:
Path(Graph* graph_) : graph(graph_) {
...
}

(应该创建 Path 对象,该对象带有指向图)

class GradientDescent{
private:
const Graph graph;
public:
Path currentPath;
GradientDescent(const Graph& graph_) : graph(graph_), currentPath(Path(&graph_)) {}

(应该创建一个 GradientDescent 对象,它有一个 const Graph 和一个非常量 Path)

问题是,因为我只是想弄清楚如何使用 const,我得到了这个错误:

error: no matching constructor for initialization of 'Path'
GradientDescent(const Graph& graph_) : graph(graph_), currentPath(Path(&graph_)) {}

longest_path.cpp:103:9: note: candidate constructor not viable: 1st argument ('const Graph *') would lose const qualifier
Path(Graph* graph_) : graph(graph_) {

最佳答案

问题是您的Path 的构造函数需要一个指向非const Graph 的指针。

要摆脱这个问题,只需更改您的构造函数声明:

Path(const Graph* graph_) : graph(graph_) {
...
}

关于c++ - 如何在这个例子中使用 `const` ness?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39985160/

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