Загрузка...

Помогите, че не так в данном классе (С++)

Тема в разделе C/C++ создана пользователем fckstah 10 окт 2023. 195 просмотров

  1. fckstah
    fckstah Автор темы 10 окт 2023 8 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
    vtlstolyarov 10 окт 2023 468 8 янв 2022
    Покажи содержимое "header.h", потому что тут всё ок
     
  3. AIexa
    AIexa 10 окт 2023 Лучший софт - lolz.live/threads/1634798/ :+rep: 12 236 24 мар 2020
    в спп файле у тебя должны быть только имплементации, а само описание класса, которое ты на фигарил тут, должно быть в h файле

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