// 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 ++是一种静态类型的语言,每个变量都有与之关联的类型(例如:intchar或用户定义的类型,例如movie_t)。这不是Python。

10-06 01:55