Компиляция класса с GCC - PullRequest
0 голосов
/ 13 марта 2012

Привет, все, я не уверен, что я сделал синтаксическую ошибку слышать, но я сделал класс и получаю эту ошибку, когда я пытаюсь его скомпилировать ....

dining.h:7:1: error: unknown type name ‘class’
dining.h:7:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token

с g ++ работает нормально, но мне нужно использовать gcc ...

это код проблемы ..

#ifndef DINING_H
#define DINING_H

class DiningSet {

    public:
        DiningSet();
        ~DiningSet();
        void getSize(); // accepts X and Y dimentions of the table (in metres)
        //void surfaceArea(int,int);    // Calculates Surface Area of table (in square metres)
        void numChairs();   // accepts number of chairs
        void cushionColour();   // accepts a cushion colour
        void woodType();    // accepts wood type
        void priceComp();   // computes a price of set
        void purchaseDet(); // displays details of purchase
        void purchasePrice();   // displays price of purchace

    private:
        int X, Y; // Dimentions of table
        float Surface;
        int chairs; // Number of chairs
        char colour; // colour of cushion (should be dynamic array)
        char wood;
        float totalPrice;   
};


#endif

1 Ответ

3 голосов
/ 13 марта 2012

gcc по умолчанию компилирует вашу программу как C. Так как это программа на C ++, это не сработает.Используйте флаг -x c++ или переименуйте файл, чтобы иметь расширение .C (регистр важен) или .cpp.

Редактировать: на самом деле, вы можете использовать целую кучу расширений имен файлов, чтобы указать, чтоваша программа на C ++.С эта ссылка :

.cc, .cp, .cxx, .cpp, .c ++, .C

Редактировать 2: Ваш комментарийниже заставляет меня думать, что вы пытаетесь поместить заголовочный файл в командную строку.Не делай этого.Просто скомпилируйте исходные файлы и при необходимости добавьте заголовки.

...