J'essaie d'écrire une application de console comme Twitter. Les classes User et UserList entre elles. J'essaie d'accéder aux abonnés de l'utilisateur suivant. La classe UserList est utilisée pour la liste chaînée.Accéder au membre privé de la classe d'un ami
//User.h
#pragma once
#include <iostream>
#include <string>
using namespace std;
class UserList;
class User
{
friend class UserList;
private:
string userName;
string personalComment;
UserList *followed;
UserList *following;
int followedNumber;
int followingNumber;
//TWEET
UserList *blocked;
User* next;
public:
User();
User(string&,string&);
};
//UserList.h
#pragma once
#include <iostream>
#include <string>
using namespace std;
class User;
class UserList{
private:
User *root;
public:
UserList();
~UserList();
void addUser(string&,string&);
bool checkUser(string&);
User& findUser(string&);
void printList();
};
D'abord, j'ai écrit une fonction pour trouver l'utilisateur suivant.
//userList.cpp
User& UserList::findUser(string& name)
{
User *temp=root;
while(temp!=NULL)
{
if(!name.compare(temp->userName))
{
return temp;
}
temp= temp->next;
}
temp= temp->next;
return temp;
}
Par exemple, utilisateur1 veut suivre utilisateur2. Je veux vérifier user1 ne suivent déjà utilisateur2. (Checkuser (nom d'utilisateur) recherche un utilisateur dans une liste, et bool)
//main.cpp in main()
if(users.findUser(user1name).following->checkUser(user2name))
{
cout<<"Err: The user '"<< user1name << "' has already followed '"<<user2name<<"'!"<<endl;
}
Mais il y a une erreur « UserList * L'utilisateur :: suivant est privé » et " dans ce contexte "
Comment puis-je accéder aux listes de cet utilisateur?
Twitter est une application console? – user463035818
@ tobi303 Pensé exactement la même chose. : P Apparemment il y a des gens qui n'utilisent pas un moteur de rendu HTML mais qui lisent juste les tags et tout ... – Downvoter
Il n'y a pas de 'User :: follows' dans votre code – user463035818