Хобрук: Ваш путь к мастерству в программировании

проблема с классом в C++

У меня есть это в Furniture.h:

#include <iostream>
#include <string>
using namespace std;

class Furniture {
public:
    Furniture();
    virtual ~Furniture();
    void setname(string name);
    void setprice(double price);
    int getprice();
    string getname();
private:
    string name;
    int price;
protected:
    static int NumberOfItems;
    int Id;

}

и это в Furniture.cpp

#include "furniture.h"

void Furniture::setname(string name) {
    this->name = name;
}
string Furniture::getname()
{
    return this->name;
}
void Furniture::setprice(double price) {
    this->price = price;
}
int Furniture::getprice() {
    return this->price;
}

int main() {
    Furniture *model = new Furniture();
    model->setname("FinalDestiny");
    model->setprice(149.99);
    cout<<"Model name: "<<model->getname()<<" - price = "<<model->getprice();
}

Но я получаю некоторые ошибки, такие как:

Ошибка 1 ошибка C2628: «Мебель», за которой следует «void», недопустима (вы забыли «;»?) c:\final\facultate\poo\laborator 1\furniture.cpp 3 1 POO_lab

Ошибка 2 ошибка C2556: «Мебельная мебель:: setname (std:: string)»: перегруженная функция отличается только типом возвращаемого значения от «void Furniture:: setname (std:: string)» c: \ final \ facultate \ poo \laborator 1\furniture.cpp 3 1 POO_lab

Ошибка 3 ошибка C2371: «Мебель :: имя набора»: переопределение; разные базовые типы c:\final\facultate\poo\laborator 1\furniture.cpp 3 1 POO_lab

Ошибка 5 ошибка C2264: «Мебель :: имя набора»: ошибка в определении или объявлении функции; функция не вызывается c:\final\facultate\poo\laborator 1\furniture.cpp 19 1 POO_lab

Что я делаю не так?

18.03.2012

  • Ошибка 1, ошибка C2628: "Мебель", за которой следует "void", недопустима (вы забыли ";"?) 19.03.2012

Ответы:


1

Вам не хватает ; в конце определения класса в вашем заголовочном файле.

// ...snipped...

protected:
    static int NumberOfItems;
    int Id;

}; // <-- here
18.03.2012

2

Вы забыли поставить точку с запятой в конце определения класса.

// ...
protected:
    static int NumberOfItems;
    int Id;
}; // <--

Я ненавижу это о C++ :)

18.03.2012
  • @JerryCoffin: Спасибо, исправлено. Вы знаете, вы всегда можете просто отредактировать его;) 19.03.2012

  • 3

    Две вещи;

    • Вы не заканчиваете свое определение класса на ;, вам нужно поставить его в конце Furniture.h.

    • Вы объявили, что есть конструктор и деструктор, но ни один из них не реализован в вашем файле .cpp.

    18.03.2012
    Новые материалы

    Управление DOM для чайников вроде меня
    Одной из первых вещей, которую мы рассмотрели, когда начали изучать Javascript во Flatiron, была модель DOM. Кто он? Чем он занимается? Он больше машина, чем человек? Ну да довольно много. ДОМ..

    Что такое структура данных?
    Структура данных хранит и извлекает данные. Все, что обеспечивает эти две функции, является структурой данных . Период. Вы можете пропустить оставшуюся часть статьи, если ответ..

    мои январские чтения по программированию
    Эрик Эллиот Программирование приложения JavaScript Эл Свейгарт «Автоматизируйте скучные вещи с помощью Python» Прогрессивное веб-приложение Google..

    Создание ассоциаций секвелизации с помощью инструмента командной строки Sequelize
    Sequelize - популярный, простой в использовании инструмент объектно-реляционного сопоставления (ORM) JavaScript, который работает с базами данных SQL. Довольно просто начать новый проект с..

    Искусственный интеллект в юридической отрасли - пример прогнозирования судебных решений с помощью глубокого обучения
    На протяжении всей истории люди полагались на суды, присяжных, королей и королев в отправлении правосудия. Сегодня способность судов обеспечивать справедливое и быстрое правосудие для своих..

    Введение в машинное обучение для обнаружения аномалий (часть 1)
    Тщательно созданный, тщательно спроектированный ресурс для специалистов по данным. Часть 1 Главы 03 из Руководства по машинному обучению для обнаружения аномалий Внимание! Прежде чем вы..

    Начало работы с Pulumi в Digital Ocean
    Цифровой океан (ДО) — отличная альтернатива многим другим поставщикам облачных услуг. DO предоставляет простой и понятный пользовательский интерфейс, упрощающий управление инфраструктурой и..