使用向量和类
Posted
技术标签:
【中文标题】使用向量和类【英文标题】:Using a vector and classes 【发布时间】:2020-05-08 00:32:27 【问题描述】:我有一个问题,对你来说可能看起来很简单,但即使我真的尝试过,我也无法弄清楚。
#include <iostream>
#include <string>
#include <vector>
//Functions Prototypes ---
void create_object(std::vector <Movie> &);
std::string set_name();
int set_ryear();
double set_rating();
//Classes ---
class Movie
public:
std::string name;
int release_year;
double rating;
public:
//Constructors
Movie(std::string u_name, int u_release_year, double u_rating);
~Movie() ;
Movie(const Movie &);
;
//MAIN ---
int main()
std::vector <Movie> Collection;
create_object(Collection);
return 0;
//Constructors ---
Movie::Movie(std::string u_name, int u_release_year, double u_rating)
:name u_name , release_year u_release_year , rating u_rating
//Stand-Alone Functions ---
char get_selection()
char x;
std::cin >> x;
return x;
void create_object(std::vector <Movie> &x)
std::string u_name = set_name();
int u_ryear = set_ryear();
double u_rating = set_rating();
Movie User_Movie u_name,u_ryear,u_rating ;
std::string set_name()
std::string x;
std::cout << "Name: ";
std::cin >> x;
return x;
int set_ryear()
int x;
std::cout << "Release year: ";
std::cin >> x;
return x;
double set_rating()
double x;
std::cout << "Rating: ";
std::cin >> x;
return x;
我只是一个初学者,所以我知道的不多,但据我所知,即使它们是用户定义的类型,类也应该是类型,并且它们应该提供被操作为的可能性原始类型。
那么,当我尝试创建一个需要一堆 Movie
类型的向量时,或者当我通过引用传递它时,为什么会收到错误消息?
它的主要用途应该是对所有函数可见,以便我可以根据需要将其传递给它们,并对它的对象进行操作(比如在创建一个新对象之后,我希望能够添加在我使用switch
创建菜单系统后,使用push_back()
和所有这些东西将其放入集合中。
【问题讨论】:
【参考方案1】:当您到达此语句时,您尚未声明 Movie
类:
void create_object(std::vector <Movie> &);
创建 C++ 类的正确方法是将基本声明放在一个单独的文件中 movie.h
,然后在您的代码中开始 #include
。
如果您不能这样做(尽管您确实应该这样做),请将类声明移到文件的开头。
【讨论】:
哇...我想简单的事情往往是最成问题的。感谢您的帮助和时间!以上是关于使用向量和类的主要内容,如果未能解决你的问题,请参考以下文章