Почему мой класс .cpp не использует мои переменные .h? - PullRequest
0 голосов
/ 28 сентября 2019

Поэтому я использую Visual Studio для создания простой программы для введения в объектно-ориентированное программирование.Для этого я использую язык C ++, в Netbeans с JAVA OPP все не так сложно, но у меня возникли проблемы.Я должен сделать простой объект, я решил сделать мой объект под названием Movie.Я сделал файлы Movie.h и Movie.cpp.Я включил расширения .h в мои Movie.cpp и main.cpp, но когда я создаю объект в своем main или пытаюсь продолжать получать ошибки и подчеркивания, потому что мой файл .cpp не распознает мои переменные, объявленные в .h, он продолжает говоритьпеременная не определена.

Итак, Visual Studio хочет помочь мне, и я следовал их методу, поэтому в моих файлах .h они сказали, что они будут определять мои методы для меня, то есть они будут устанавливать его для меня и когдаЯ щелкнул по нему, я получил этот формат

    string Movie::getName()
    {
return string();
    }

В то время как я использую этот формат для этой функции

    string getName(){
    return name;
    }

Мои переменные подчеркиваются красным цветом, говоря, что они не определены.

Мой файл Movie.h

   #pragma once

    //Header File is where all of your class defenitions will go.
    class Movie
    {
    private:
string name;
int length;
double rating;

    public:
//Constructors
//A Default constructor
Movie();

//A Constructor that takes in 3 values, an int, a double and a string
Movie(int x, double y, string z );

//Get fucntions
//Get fucntions will get the required values.
string getName();
int getLength();
double getRating();

//Set functions
//Set fucntions will set the variables to the input values.

void setName(string x);
void setLength(int y);
void setRating(double z);

//toString Function
//A toString function that will display the details of the object
void toString();

    };

Мой файл Movie.cpp

        #include "Movie.h"
        #include "pch.h"
        #include <iostream>
        #include <string>
        using namespace std;

        //Default Construtor
        Movie::Movie()
        {

        }
        //A Construtor that takes in 3 values, int for length, double for rating, string for name
        Movie::Movie(int x, double y, string z)
        {

            setLength(x);
            setRating(y);
            setName(z);

        }

        //Set functions

        void setLength(int x) {
            length = x;
        }
        void setRating(double y) {
            rating = y;
        }
        void setName(string z) {
            name = z;
        }

        //Get functions
        int getLength() {
            return length;
        }
        double getRating() {
            return rating;
        }
        string getName() {
            return name;
        }

Мой .main

        #include "pch.h"
        #include <iostream>
        #include "Movie.h"
        #include <string>
        using namespace std;

        int main()
        {

            Movie mo1();

                        mo1.setName("Inceptio");
                            mo1.setLength(123);


            cin.ignore(1);
            return 0;

        }

Теперь я не работална моем методе toString, но я не могу, потому что я не могу понять, в чем реальная проблема, почему мой .cpp не распознает мои переменные?Мой формат неверный?Является ли формат Visual Studio правильным, потому что я работал с их форматом и тоже получил кучу ошибок, или я объявляю их неправильными или что-то в этом роде?Спасибо!

1 Ответ

0 голосов
/ 28 сентября 2019

Main.cpp

//#include "pch.h"
#include <iostream>
#include "Movie.h"
#include <string>
using namespace std;

int main()
{
  Movie mo1;
  mo1.setName("Inceptio");
  mo1.setLength(123);

  cin.ignore(1);
  return 0;
}

Movie.h

#pragma once
#ifndef Movie_H
#define Movie_H
#include <string>
#include <iostream>
using namespace std;

//Header File is where all of your class defenitions will go.
class Movie
{
private:
    string name;
    int length;
    double rating;

public:
    //Constructors
    //A Default constructor
    Movie();

    //A Constructor that takes in 3 values, an int, a double and a string
    Movie(int x, double y, string z);

    //Get fucntions
    //Get fucntions will get the required values.
    string getName();
    int getLength();
    double getRating();

    //Set functions
    //Set fucntions will set the variables to the input values.

    void setName(string x);
    void setLength(int y);
    void setRating(double z);

    //toString Function
    //A toString function that will display the details of the object
    void toString();
};
#endif

Movie.cpp

#include "Movie.h"
//#include "pch.h"
#include <iostream>
#include <string>
using namespace std;

//Default Construtor
Movie::Movie()
{

}
//A Construtor that takes in 3 values, int for length, double for rating, string for name
Movie::Movie(int x, double y, string z)
{

    setLength(x);
    setRating(y);
    setName(z);

}

//Set functions

void Movie::setLength(int x) {
    length = x;
}
void Movie::setRating(double y) {
    rating = y;
}
void Movie::setName(string z) {
    name = z;
}

//Get functions
int Movie::getLength() {
    return length;
}
double Movie::getRating() {
    return rating;
}
string Movie::getName() {
    return name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...