gpt4 book ai didi

c++ - 访问类私有(private)成员中的结构成员?

转载 作者:行者123 更新时间:2023-11-28 02:00:22 25 4
gpt4 key购买 nike

例如:

graph.h

#ifndef GRAPH_H
#define GRAPH_H

#include <iostream>
#include <string>

using namespace std;

class graph
{
private:
struct node
{
string name;
int currentValue;
struct node *next;
};
node* head;
public:
graph();
~graph();

graph(string* newName, int* givenValue);
}

#endif

图形.cpp

#include "graph.h"

graph::graph() {}

graph::~graph() {}

graph::graph(string* newName, int* givenValue)
{
//This is what I want to achieve
this->node->name = newName; //Compile error
}

main.cpp

#include "graph.h"
#include <iostream>

using namespace std;

int main()
{
return 0; //Note I have not yet created a graph in main
}

如何访问上述函数的结构节点成员?

这是错误:

graph.cpp: In constructor ‘graph::graph(std::string*, double*)’:
graph.cpp:24:8: error: invalid use of ‘struct graph::node’
this->node->label = newName;

最佳答案

问题与您的私有(private)结构无关。构造函数应该能够访问所有私有(private)成员。

问题是您混淆了结构名称 node 和变量名称 head:

this->node->name = newName; // incorrect

你应该这样写:

 this->head->name = *newName;

关于c++ - 访问类私有(private)成员中的结构成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39850634/

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