Для задания мне нужно создать класс фильма, который содержит название фильма, рейтинг MPAA, количество людей, которые оценили его от 1 до 5, найти накопленное значение для каждого из рейтингов и среднее значение.
В основном у меня проблемы с конструктором и классом. Я пытаюсь заставить это взять строку (и я получил эту часть несколько правильно). Я получаю несколько ошибок в строке 77 и строке 83. Я также застрял, так как не знаю, какие шаги мне следует предпринять дальше. Я буду признателен за любую возможную помощь.
Вот что я получил так далеко:
#include "stdafx.h"#include <iostream>
#include <string.h>
#include <string>
// Required headers
using namespace std;
//Class movie starts
class Movie {
public:
void SetMovieName(string moviename);
// Function to set the name of the movie
// moviename = movie; later on
string GetMPAAR();
//function to return the MPAA rating
int amountofratingsof1() const;
//function to return the number of people that rated the movie as a 1
int amountofratingsof2() const;
//function to return the number of people that rated the movie as a 2
int amountofratingsof3() const;
//function to return the number of people that rated the movie as a 3
int amountofratingsof4() const;
//function to return the number of people that rated the movie as a 4
int amountofratingsof5() const;
//function to return the number of people that rated the movie as a 5
int average() const;
//function to return the average value of all ratings
std::string Movies(string moviename = "Gavecube: The Movie");
//constructor to set the movieprivate:
string Movie; //variable to store the name of the movie
int peoplethatrated1; // variable to store the number of people that rated 1
int peoplethatrated2; // variable to store the number of people that rated 2
int peoplethatrated3; // variable to store the number of people that rated 3
int peoplethatrated4; // variable to store the number of people that rated 4
int peoplethatrated5; // variable to store the number of people that rated 5
};
//implementation file:
void Movie::SetMovieName(const string moviename) {
//function below checks if it is a string or not
if (!cin) {
cout << "Not a valid input. Please restart." << endl;
}
}
int Movie::amountofratingsof1()const {
}
int Movie::amountofratingsof2()const {
}
int Movie::amountofratingsof3()const {
}
int Movie::amountofratingsof4()const {
}
int Movie::amountofratingsof5()const {
}
//constructor
std::string Movie(string moviename) {
SetMovieName(moviesname)
}int main()
{
Movie Movies("Hello");return 0;
}
Спасибо.
Для конструкторов они не похожи на обычную функцию. У них нет типа возврата, даже void
, В конструкторе, если вы можете использовать инициацию члена, вы должны. Вот довольно хорошее объяснение конструкторов, если вы идете к Constructors
раздел. В целом это должно выглядеть так:
ClassName (parameter par1, ...) : mem1(par1), ...{}
где mem1
является членом данных, соответствующим par1
, Дальше вниз в ссылка раздел посвящения членов, который описывает, как это сделать. Как только вы получите настройку конструктора, вы должны закончить с определениями функций-членов в любом порядке, который вы хотите, затем протестировать и отладить, как и в любой другой программе. Проверьте крайние случаи и недействительные числа, если вам нужно сделать проверку на ошибки.
Других решений пока нет …