Загрузка...

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

Thread in C/C++ created by fckstah Oct 10, 2023. 193 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,234 Mar 24, 2020
    в спп файле у тебя должны быть только имплементации, а само описание класса, которое ты на фигарил тут, должно быть в h файле

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