Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с описанием класса 
:(
    Опции темы
RinOSpro
Дата 15.10.2007, 20:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В общем делаю по примеру игру ColorLines, в с++ я новичек. И чтото застрял вот на этой теме

Вот здесь

не пойму где описывать класс. Помогите пожалуйста!
  Вверх
marcusmae
Дата 15.10.2007, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 5
Всего: 39



RinOSpro, в плюсах принято описание класса помещать в хедер-файл, а тела методов и конструкторы - в cpp-файл. Скажем, у Вас есть основной файл программы, main.cpp. В нем прописывается директива включения хедера :

Код

#include "headername.h"


Далее, в файле headername.h по Вашему примеру пишется описание :

Код

class CLinesDoc : public CDocument
{
    ...
    // Attributes
public:
    int m_iNumOfRows; // количество рядов игрового поля
    int m_iNumOfColors; //максимальное количество цветов
    int m_iNumOfPoints; //количество очков
    int m_iNumOfBalls; //количество шариков на поле
    int m_field[iNumOfRows][iNumOfRows]; //массив, задающий игровое поле
    ...


А тела методов и конструкторы помещаются в main.cpp :

Код

CLinesDoc::CLinesDoc()
{
    // TODO: add one-time construction code here
    m_iNumOfColors=7;//количество цветов (7 максимум)
    m_iNumOfRows=9;
}

BOOL CLinesDoc::OnNewDocument()
{
    if (!CDocument::OnNewDocument())
        return FALSE;
    
    // TODO: add reinitialization code here
    // (SDI documents will reuse this document)
    m_iNumOfBalls=0; //Шариков на поле пока нет
    m_iNumOfPoints=0;//Количество очков (пока ноль)
    srand(GetTickCount()%32000); //Инициализируем датчик случайных чисел
    for(int j=0;j<m_iNumOfRows;j++){
        for(int i=0;i<m_iNumOfRows;i++){
            m_field[i][j]=0; //заполняем поле нулями
        }
    }
    ...


Таков хороший тон. Можно писать без вынесения тел в cpp-файл (C#-ый стиль). Если функции небольшие, то вполне читаемо. А вообще описывать класс можно где-угодно.

Я правильно понял вопрос?


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
RinOSpro
Дата 16.10.2007, 07:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(marcusmae @  15.10.2007,  20:17 Найти цитируемый пост)
Я правильно понял вопрос? 

Наверно правильно я в этом просто нулями. Дело в том что я пишу на делфи и еле еле учусь на с++ и там так много файлов что я не знаю куда все это писать.

Я там все прописал но у меня чтото ошибку показывает на вот эту строку

Код

CLinesDoc::CLinesDoc()
{
    // TODO: add one-time construction code here
    m_iNumOfColors=7;//количество цветов (7 максимум)
    m_iNumOfRows=9;
}

  Вверх
marcusmae
Дата 16.10.2007, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 5
Всего: 39



Цитата(RinOSpro @  16.10.2007,  07:18 Найти цитируемый пост)
Я там все прописал но у меня чтото ошибку показывает на вот эту строку


Пожалуйста, ошибку и остальной код в студию :



--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
RinOSpro
Дата 16.10.2007, 20:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











MainFrm.cpp
d:\ColorLines\mainfrm.cpp(79) : error C2143: syntax error : missing ')' before ';'
d:\ColorLines\mainfrm.cpp(116) : error C2600: 'CLinesDoc::CLinesDoc' : cannot define a compiler-generated special member function (must be declared in the class first)
Build log was saved at "file://d:\ColorLines\ColorLines\Debug\BuildLog.htm"
ColorLines - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
  Вверх
dumb
Дата 16.10.2007, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 8
Всего: 158



Код

class CLinesDoc : public CDocument
{
    ...
};
?
PM MAIL   Вверх
RinOSpro
Дата 17.10.2007, 18:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вот посмотрите пожалуста где ошибка!

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  ColorLines.rar 36,08 Kb
  Вверх
a_n_d_y
  Дата 17.10.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 23.10.2006
Где: Ukraine::Kiev

Репутация: 1
Всего: 1



Код

class CLinesDoc  : public CDocument
{
public:
    int m_iNumOfRows; // количество рядов игрового поля
    int m_iNumOfColors; //максимальное количество цветов
    int m_iNumOfPoints; //количество очков
    int m_iNumOfBalls; //количество шариков на поле
    int m_field[iNumOfRows][iNumOfRows];
    CLinesDoc(); // !!! не было объявления конструктора...
};


кроме того студия еще материлась на отсутствие файла "res\ColorLines.rc2"
PM MAIL ICQ Skype MSN   Вверх
RinOSpro
Дата 17.10.2007, 19:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











a_n_d_y   ГИГАНТСКОЕ СПАСИБО!!! 

И еще что бы уточнить, я описал класс в MainFrm.cpp а то что то из *.h не работает, или я не что то не так делаю.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.