// example about structures
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
struct movies_t {
string title;
int year;
} mine, yours;
void printmovie (movies_t movie);
int main ()
{
string mystr;
mine.title = "2001 A Space Odyssey";
mine.year = 1968;
cout << "Enter title: ";
getline (cin,yours.title);
cout << "Enter year: ";
getline (cin,mystr);
stringstream(mystr) >> yours.year;
cout << "My favorite movie is:\n ";
printmovie (mine);
cout << "And yours is:\n ";
printmovie (yours);
return 0;
}
void printmovie (movies_t movie)
{
cout << movie.title;
cout << " (" << movie.year << ")\n";
}
我不明白的是,多余的“电影”来自两个无效的printmovie函数参数。起初我以为它应该是一个函数参数,但是没有逗号分隔它和“ movies_t”。您能否解释一下printmovie函数如何与movies_t数据结构交互?
最佳答案
printmovie
仅接受一个参数。movies_t
是参数的类型。movie
是参数名称。
要记住的重要一点是C ++是一种静态类型的语言,每个变量都有与之关联的类型(例如:int
,char
或用户定义的类型,例如movie_t
)。这不是Python。