Par exemple:Accès aux membres de structure à l'intérieur d'une classe de membres privés?
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
graph.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
}
Comment puis-je accéder au membres de la structure pour la fonction ci-dessus?
C'est l'erreur:
graph.cpp: In constructor ‘graph::graph(std::string*, double*)’:
graph.cpp:24:8: error: invalid use of ‘struct graph::node’
this->node->label = newName;
Ce que vous voulez faire est: 'this-> head-> label = newName;'; 'node' est un type, pas un membre. Quoi qu'il en soit, je vous suggère de ne pas utiliser un pointeur, c'est-à-dire: define 'node head;' au lieu de 'node * head; ', alors utilisez' this-> head.label = newName; ' – shrike
nitpicking aide parfois: Vous n'avez pas accès le membre d'une structure/classe, mais le membre d'une instance d'une structure/classe – user463035818
quel genre de graphique bizarre c'est, mec? Êtes-vous sûr de ne pas vouloir dire arbre? – v78