Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 14
1

Вынесение кода в отдельный файл.

26.04.2010, 12:01. Просмотров 2573. Ответов 1
Метки нет (Все метки)

Чтобы понять ООП, пишу маленькую игрушку-пошаговый файтинг для курсовика. Пока консольный, linux.
Логически состоит она из "Меню" и "Битвы".
Пункты меню:
1. Битва //вызов модуля битвы.
2. Правила игры, Легенда, Об авторе //просто вывод текста из файла

Битва:
1. Классы персонажей //базовый и наследуемые
2. Функция CreateEnemy //рандомно выбирает оппонента.
3. Функция fight //в неё подсовываются два игрока чтобы подраться

Есть вопросы:
1 - что выносить в отдельные файлы? Ведь выносить определённо стоит - не компилировать же по 200 раз один и тот же кусок кода
2 - как выносить? На примере функции void func1(){//code}, если можно. И, если не трудно, объясните как выносить классы.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2010, 12:01
Ответы с готовыми решениями:

Вопрос по выносу кода в отдельный файл
Вот если писать в С программу, очень много когда можно запутаться ... Можно ли как то вынести...

Си++, помещение комментариев из кода страницы в отдельный файл
Добрый вечер! Мне необходимо комментарии из кода программы поместить в отдельный файл. Программа...

Вынесение кода из страницы в отдельный файл
Имею след. код javascript в своем html документе, помогите исправить его так, что бы можно было...

Вынесение настроек из программы в отдельный конфигурационный файл
Добрый вечер, хочу повторить интересующий вопрос, надеюсь на вашу помощь. Есть допустим в...

1
ниначмуроФ
846 / 530 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
26.04.2010, 12:13 2
Лучший ответ Сообщение было отмечено WoodyArt как решение

Решение

на прмере своего класса:

1)интерфейс класса - файл generateSudoku.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef  _generateSudoku_H_
#define _generateSudoku_H_
 
//интерфейс класса, эмулирующего генерацию судоку
 
class generateSudoku{
    public:
    generateSudoku(int sizeSudoku);
    ~generateSudoku(){};
    void generate();
    void show();
 
    private:
    const int ROWS;
    const int COLS;
    std::vector< std::vector<int> > mas;
};
 
#endif
2)реализация класса - файл generateSudoku.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "generateSudoku.h"
 
generateSudoku::generateSudoku(int sizeSudoku): ROWS(sizeSudoku),COLS(sizeSudoku),mas( std::vector< std::vector<int> >(ROWS, std::vector<int>(COLS)) ){
}
 
void generateSudoku::show(){
    for (int i=0; i<ROWS; i++){
        for (int j=0; j<COLS; j++)
        std::cout<<mas[i][j]<<" ";
        std::cout<<std::endl;
    }
}
 
void generateSudoku::generate(){
 
 
    /*srand(time(NULL));
    for (int i=0; i<ROWS; i++)
    for (int j=0; j<COLS; j++){
 
        mas[i][j]=(1+rand()%ROWS);
    }*/
    bool ok=true;
    int k=0;
 
    int i=0;
    //srand(time(NULL));
    while(i<ROWS){
        int j=0;
        while (j<COLS){
 
 
            int curr_digit=(1+rand()%ROWS);
           /* std::cout<<curr_digit<<" "<<j<<std::endl;
                                        for (int i=0; i<ROWS; i++){
                                    for (int j=0; j<COLS; j++)
                                    std::cout<<mas[i][j]<<" ";
                                    std::cout<<std::endl;
                                }
            getch();*/
 
            for (int jj=0; jj<=j; jj++){
                if (mas[i][jj]==curr_digit){
                    ok=false;
                    break;
                } else ok=true;
            }
            if (ok){
                ok=true;
                mas[i][j]=curr_digit;
                j++;
            }
 
 
 
        }
        //j=0;
        i++;
    }
 
 
}
3)использование класса - файл main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <conio.h>
#include <cstdlib>
#include "generateSudoku.h"
#include "generateSudoku.cpp"
 
 
int main()
{
 
    int sizeSudoku=9;
 
 
    generateSudoku sudoku(sizeSudoku);
    sudoku.generate();
    sudoku.show();
 
 
 
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2010, 12:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Вынести часть кода в отдельный файл
Ситуация следующая: Есть три php файла. index.php (страница с формой), verification.php...

Вынести блок кода в отдельный файл
Представим такую ситуацию: у вас есть блок-меню сайта, который повторяется на всех страницах,...

Вынести часть кода в отдельный файл
Есть не большой сайтик. Cобран из html страниц и один банер в верху. Если изменять банер - нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.