【发布时间】:2021-08-26 21:19:27
【问题描述】:
在 Movie.hpp 中
#ifndef MOVIE_H
#define MOVIE_H
class Movie
{
private:
std::string title;
public:
std::string getTitle() const {return this->title;}
void setTitle(std::string newTitle){this->title = newTitle;}
};
#endif
在 Actor.hpp 中
#ifndef ACTOR_H
#define ACTOR_H
#include "Person.hpp"
#include "Movie.hpp"
class Actor: public Person
{
private:
std::vector<Movie> movieList;
public:
void addMovie(Movie newMovie){this->movieList.push_back(newMovie);}
void printMovies()
{
for(Movie movie: this->movieList)
{
std::cout << movie.getTitle() << '\n';
}
}
};
#endif
如果我添加一个单独的类,代码中会有哪些变化
class Role {
private:
Actor* actor;
Movie* movie;
};
并在 Movie 和 Actor 中存储此类对象的集合
std::vector<Role> movieList; //inside Actor
std::vector<Role> actorList; //inside Movie
请使用上面定义的“角色”对象编辑 Movie.hpp 和 Actor.hpp 中的代码来帮助我。
【问题讨论】:
-
您是否使用
std::shared_ptr进行过调查? -
@user4581301 是的,我已经这样做了,但我需要根据上述指令编辑代码,即插入角色对象
-
这个问题与this one有何不同?
-
"请有人帮助我,使用上面定义的“角色”对象编辑 Movie.hpp 和 Actor.hpp 中的代码" - 听起来像是一项家庭作业。 StackOverflow 是一个问答网站,不是作业服务器,也不是代码编写服务。到目前为止,您尝试过什么来尝试自己实现这一点?
-
这实际上是你提出这个问题的第三次切入点。在所有三个
shared_ptr中都被建议了。我强烈建议尝试并询问有关shared-ptr的问题。一遍又一遍地问同一个问题,而没有表现出任何努力来实施以前建议的解决方案,这并不能很好地反映。