c++使用第二个构造函数
c++ Using a second constructor
嗨,伙计们,我正试图做我的家庭作业,我被一些构造器卡住了。我应该这样做:
- 编写一个程序,使用一个名为MovieData的类来存储关于电影的下列信息:
- 片名、导演、发行年份、片长(分钟)。
- 包含一个允许所有这四个成员数据的构造函数在创建MovieData变量时指定的值。 程序应该创建两个MovieData变量。
- 提供一种方法,以一种格式清晰的方式显示有关电影的信息。
- 现在包括两个额外的属性,保持电影的制作成本和第一年的收入。
- 添加第二个构造函数,以便所有六个成员值都可以在创建MovieData变量时指定。
- 复制显示电影数据的方法,以创建第二个显示标题、导演、发行年份、运行时间和第一年利润或亏损的方法。
到目前为止,我已经完成了:
// ch7movie
// By Kevin Mok
#include <iostream>
#include <string>
using namespace std;
class MovieData
{
public:
string title;
string director;
int yearReleased;
int runningTime;
double productionCost;
double firstYearRevenue;
MovieData(string titl, string dir, int yr, int rT, double pC, double fyR); // constructor
};
//Defining constructor
MovieData::MovieData(string titl, string dir, int yr, int rT, double pC, double fyR)
{
title = titl;
director = dir;
yearReleased = yr;
runningTime = rT;
productionCost = pC;
firstYearRevenue = fyR;
}
//Function of movie info
void displayMovieInfo(MovieData movieName)
{
cout << "----------------------------" << endl;
cout << "Title: " << movieName.title << endl;
cout << "Director: " << movieName.director << endl;
cout << "Year Released: " << movieName.yearReleased << endl;
cout << "Running Time: " << movieName.runningTime << " minutes" << endl;
cout << "Production Cost: $" << movieName.productionCost << endl;
cout << "First Year's Profit': $" << movieName.firstYearRevenue - movieName.productionCost << endl;
cout << "----------------------------n" << endl;
}
int main()
{
MovieData movie1("C++ in English", "JohnCna", 2010, 120, 36500, 50000);
MovieData movie2("Great Programmer", "RKO", 2013, 130, 36500, 100000);
displayMovieInfo(movie1);
displayMovieInfo(movie2);
return 0;
}
我知道我没有第二个构造函数,这是我的问题。我不知道如何申报;我一直在读我的书,但我有很多麻烦,因为它没有说任何关于它。如果你能给我一些指导就太好了
您已经有了一个构造函数。只需对另一个构造函数执行完全相同的操作,只是使用不同的参数,如需求中所说的to。
您需要将您的displayMovieInfo()
独立函数更改为类的方法,如要求所述。
试试这个:
// ch7movie
// By Kevin Mok
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class MovieData
{
public:
string title;
string director;
int yearReleased;
int runningTime;
double productionCost;
double firstYearRevenue;
// constructors
MovieData(string titl, string dir, int yr, int rT);
MovieData(string titl, string dir, int yr, int rT, double pC, double fyR);
void displayMovieInfo();
void displayMovieInfoAndCosts();
};
//Defining constructors
MovieData::MovieData(string titl, string dir, int yr, int rT)
{
title = titl;
director = dir;
yearReleased = yr;
runningTime = rT;
productionCost = 0.0;
firstYearRevenue = 0.0;
}
MovieData::MovieData(string titl, string dir, int yr, int rT, double pC, double fyR)
{
title = titl;
director = dir;
yearReleased = yr;
runningTime = rT;
productionCost = pC;
firstYearRevenue = fyR;
}
//Methods to display movie info
void MovieData::displayMovieInfo()
{
cout << "----------------------------" << endl;
cout << "Title: " << title << endl;
cout << "Director: " << director << endl;
cout << "Year Released: " << yearReleased << endl;
cout << "Running Time: " << runningTime << " minutes" << endl;
cout << "----------------------------n" << endl;
}
void MovieData::displayMovieInfoAndCosts()
{
cout << "----------------------------" << endl;
cout << "Title: " << title << endl;
cout << "Director: " << director << endl;
cout << "Year Released: " << yearReleased << endl;
cout << "Running Time: " << runningTime << " minutes" << endl;
cout << "Production Cost: $" << setprecision(2) << productionCost << endl;
cout << "First Year's Profit': $" << setprecision(2) << firstYearRevenue - productionCost << endl;
cout << "----------------------------n" << endl;
}
int main()
{
MovieData movie1("C++ in English", "JohnCna", 2010, 120, 36500, 50000);
MovieData movie2("Great Programmer", "RKO", 2013, 130, 36500, 100000);
movie1.displayMovieInfo();
movie1.displayMovieInfoAndCosts();
movie2.displayMovieInfo();
movie2.displayMovieInfoAndCosts();
return 0;
}
相关文章:
- 等待整个 omp 块完成,然后再调用第二个函数
- c++ 构造函数 将 1 个字符串参数转换为 3 个属性
- 两个父类的构造函数的序列
- 使第二个类的构造函数成为第一个类中的友元函数
- 关于 std::bitset 构造函数的几个问题?
- 有一个构造函数,但有两个析构函数
- C++ 关于两个类构造函数的问题
- 重载具有 2 个相同数据类型成员的构造函数
- 候选构造函数(隐式复制构造函数)不可行:第一个参数需要 l 值
- 用相同的参数声明两个构造函数的最偶像化的方法是什么?
- 如何在构造函数初始值设定项列表中使用 n 个元素初始化 std::vector<std::time_t>
- C++使用函数对象的线程,如何调用多个析构函数而不是构造函数?
- 两种类型的定义构造函数有什么区别?第一个使用":",第二个用大括号(如函数)定义它
- 为什么构造函数没有得到对数组中第二个对象的调用
- 对于在同一地址构造两次的对象,编译器如何知道必须调用第二个析构函数
- c++使用第二个构造函数
- 用c++调用的第二个构造函数(错误的输出)
- Std::set构造函数第二个参数错误
- 模板大小递归--构造函数多个重载
- 模板类构造函数,在第二个模板中有一个参数引发错误"constant"