我有一个名为Client的类就像这样
class Client
{
public:
Client(unsigned int id, std::string nom, std::string prenom, float solde);
unsigned int getId() const;
std::string getNom() const;
std::string getPrenom() const;
float getSolde() const;
bool operator< (Client& client);
friend std::ostream& operator<< (std::ostream& os, const Client& client);
bool diminutionSolde(float diminution);
private:
unsigned int id_;
std::string nom_;
std::string prenom_;
float solde_;
};
我还有一篇类似的文章
class Article
{
public:
Article(unsigned int id, std::string nom, float prix);
unsigned int getId() const;
std::string getNom() const;
float getPrix() const;
bool operator< (Article& article);
friend std::ostream& operator<< (std::ostream& os, const Article& article);
private:
unsigned int id_;
std::string nom_;
float prix_;
};
我还有另一个类(我认为没有必要显示)作为attribut的地图,
std::map<Client , BasketArticles* > mapClientPanier_;
哪个BasketArticles作为列表&lt; T>作为attribut;
首先,我是否需要在客户端上使用指针?
然后,我如何逐个访问客户端文章以在屏幕上流式传输它们,如std :: cout&lt;&lt;
和/或pout客户端的名称和他在新地图中的文章(按字母顺序排列),然后是std :: cout&lt;&lt;这一切。
答案 0 :(得分:0)
是否需要指针完全取决于如何构造BasketArticles
类实例:负责实例化和销毁它们的内容。如果您的BasketArticles
实例在其他地方实例化,并且您希望地图引用它们,那么显然您需要一个指针。否则,如果BasketArticles
的实例应该只存在于地图中,那么最好避免使用指针,并让std::map
负责实例化它们。