Создание класса и использование конструктора в C++ (присваивание)

Для задания мне нужно создать класс фильма, который содержит название фильма, рейтинг 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 movie



    private:
    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;
}

Спасибо.

1 ответ

Для конструкторов они не похожи на обычную функцию. У них нет типа возврата, даже void, В конструкторе, если вы можете использовать инициацию члена, вы должны. Вот довольно хорошее объяснение конструкторов, если вы перейдете к Constructors раздел. В целом это должно выглядеть так:

ClassName (parameter par1, ...) : mem1(par1), ...{}

где mem1 является членом данных, соответствующим par1, Далее по ссылке находится раздел посвящения членов, который описывает, как это сделать. Как только вы получите настройку конструктора, вы должны закончить с определениями функций-членов в любом порядке, который вы хотите, затем протестировать и отладить, как и в любой другой программе. Проверьте крайние случаи и недействительные числа, если вам нужно сделать проверку на ошибки.

Другие вопросы по тегам