【发布时间】:2015-09-04 00:23:12
【问题描述】:
所以我正在研究我的课堂教科书中的一个示例从 C++ 开始:早期对象,我遇到了一个问题。我被指示创建一个程序,该程序读取一些数据并在最后打印它,总共 2 个实例。当第二个实例 (md2) 运行时,它不允许我在第一个字段中输入任何内容。这真的让我很烦恼,我无法弄清楚。提前致谢!
#include <iostream>
using namespace std;
class MovieData
{
private:
string movieTitle;
string movieDirector;
int movieYear;
int movieRunTime;
public:
MovieData()
{
GetTitle();
GetDirector();
GetYear();
GetRunTime();
}
void GetTitle()
{
cout << "Specify A Title\n";
getline(cin, movieTitle);
cout << endl;
}
void GetDirector()
{
cout << "Specify A Director" << endl;
getline(cin, movieDirector);
cout << endl;
}
void GetYear()
{
cout << "Specify A Year" << endl;
cin >> movieYear;
cout << endl;
}
void GetRunTime()
{
cout << "Specify A Duration In Minutes" << endl;
cin >> movieRunTime;
cout << endl;
}
void SetTitle()
{
cout << "R" << movieTitle << endl;
}
void SetDirector()
{
cout << "R" << movieDirector << endl;
}
void SetYear()
{
cout << "R" << movieYear << endl;
}
void SetRunTime()
{
cout << "R" << movieRunTime << endl;
}
};
void PrintData(MovieData md);
int main() {
MovieData md1;
PrintData(md1);
MovieData md2;
PrintData(md2);
}
void PrintData(MovieData md)
{
md.SetTitle();
md.SetDirector();
md.SetYear();
md.SetRunTime();
cout << endl;
}
【问题讨论】:
-
旁注:你不需要实例化对象吗?
-
@BlackFrog 在Java或C#中,每个对象都是一个指针,所以需要用
new命令初始化MovieData。 (即MovieData md1 = new MovieData()。这个例子是C++。在C++中,简单地声明一个类的实例将调用构造函数。 -
是的,我认为这就是您的意思。我记得那些语言中的,但想知道你为什么提到它,哈哈。