Загрузка...

Help, what's wrong in this class (C++)

Thread in C/C++ created by fckstah Oct 10, 2023. 205 views

  1. fckstah
    fckstah Topic starter Oct 10, 2023 8 Apr 15, 2021
    Ругается, что несколько конструкторов по умолчанию

    C
    #include "header.h"

    class Book {
    public:
    Book();
    Book(const Book &book);
    Book(const char Name[100] = "-", const char Theme[100] = "-", const char Author[100] = "-", const char Publisher[100] = "-", const int Year = 0, const int Pages = 0, const int Price = 0);
    ~Book();

    void input();
    void output();


    char mName[100];
    char mAuthor[100];
    char mPublisher[100];

    protected:
    void enterDate(char*);

    char mTheme[100];
    int mYear;
    int mPages;

    private:
    void printDate(const char*, WORD);

    int mPrice;
    };

     
  2. vtlstolyarov
    Покажи содержимое "header.h", потому что тут всё ок
     
  3. AIexa
    AIexa Oct 10, 2023 Лучший софт - lolz.live/threads/1634798/ :+rep: 12,236 Mar 24, 2020
    в спп файле у тебя должны быть только имплементации, а само описание класса, которое ты на фигарил тут, должно быть в h файле

    Можно конечно сделать и как ты сделал, но я не помню какие там подводные, ибо все делают так, как я выше описал
     
    1. пользователь
      AIexa, какая разница где что должно быть? это лишь вопрос оптимизации, чтобы не компилить cpp файлы заново каждый раз, но ни коем образом не влияет на работоспособность
    2. AIexa
      @пользователь, я уточнил, что я не помню разницы в размещении классов в спп и h файлах, возможно там есть разница. Поэтому я и написал про это
    3. View the next comments (3)
  4. пользователь
    первый и третий конструктор выполняются при auto book = new Book()
    потому что в первом у тебя нет аргументов, а в третьем все аргументы имеют значение по умолчанию.
    убери первый конструктор
     
    1. AIexa
      @пользователь, кста рил, лол
Loading...
Top