Форум программистов, компьютерный форум CyberForum.ru

Объявление константы в классе - C++

Восстановить пароль Регистрация
 
keyson
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
18.05.2013, 10:23     Объявление константы в классе #1
Мне надо сделать класс в отдельном файле, я не использую main и не могу инициализировать константу вне класса, но мне надо ее использовать в одном из методов класса:
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#pragma once 
 
#include "stdafx.h"
#include <iostream>
#include "IPlayer.cpp"
#include "Enums.cpp"
 
#ifndef _BOT_PLAYER
#define _BOT_PLAYER 
using namespace std;
class BotPlayer: public IPlayer
{    
public:
   static const char bot[5];
    BotPlayer(PlayerType playerType) : IPlayer(playerType)
    {
    bot[5] ="Yana";}
    
    Turn MakeTurn(State Map[3][3])
    { int row[4];
      int col[4];
      int k=0;
      int g=0;
        if(playerType==XPlayer)
        {
            if(Map[2][2]==Undefined)
            { 
                return Turn(2,2);}
            
            for(int i=0;i<3;i++)
                for(int j=0;j>3;j++)
                {
                    if(Map[i][j]==1)
                    {
                        row[k]=i;
                        col[k]=j;
                        k=k+1;
 
                }
                }}
            if(k==1)
            { for(int i=0;i<3;i++)
                for(int j=0;j>3;j++)
                { if(Map[i][j]==Undefined)
                { return Turn(i,j);
                }
                }
            }
            if(k>=2)
            {for(int s=0;s<k-1;s++)
            {
                if(row[s]==row[s+1])
                {
                    for(int j=0;j<3;j++)
                    {
                        if((j!=col[0])&&(j!=col[1])&&(Map[row[0]][j]==Undefined))
                            {return Turn(row[0],j);}
                        else
                        {  g=1;   }
                            
                        }
                    }
                if(col[0]==col[1])
                {for(int i=0;i<3;i++)
                    {
                        if((i!=row[0])&&(i!=row[1])&&(Map[i][col[0]]==Undefined))
                        { 
                        return Turn(i,col[0]);}
                        else
                        { g=g+1;
                    }
                }}}
                for(int i=0;i<k;i++)
                {
                     if(row[i]==col[i])
                     {
                         for(int j=0;j<3;j++)
                            { if((j!=row[i])&&(Map[j][j]==Undefined))
                             {
                                 return Turn(j,j);
                             }
                            else{ g=g+1;
 
                            }
                         }
                     }
                     if((row[i]-col[i]==2)&&(Map[col[i]][row[i]]==Undefined))
                             { return Turn(col[i],row[i]);}
                     else{g=g+1;
 
                            }
                      if((row[i]-col[i]==-2)&&(Map[col[i]][row[i]]==Undefined))
                             { return Turn(col[i],row[i]);}
                            else{ g=g+1;
 
                            }
 
                       if(g==5)
                       {    for(int i=0;i<3;i++)
                                 {for(int j=0;j>3;j++)
                                    {  if(Map[i][j]==Undefined)
                                        { return Turn(i,j); }
                                    }}
 
                            }
                }
                }
            if(playerType==OPlayer)
            { 
                 for(int i=0;i<3;i++)
                                 {for(int j=0;j>3;j++)
                                    {  if(Map[i][j]==Undefined)
                                        { return Turn(i,j); }
                                    }}
 
                            }
    }
 
 
 
    
    
    
 
    const char* GetName()
    {
        return bot;
    }
};
 
 
#endif
подскажите как это можно сделать?
сейчас он мне выдает такую ошибку
cannot convert from 'const char [5]' to 'const char'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 10:23     Объявление константы в классе
Посмотрите здесь:

объявление файловых потоков в классе C++
Объявление в классе объекта другого класса C++
Как обьявить переменную в одном классе и что бы ее было видно в дочернем классе C++
C++ Объявление константы и массива в классе
C++ Непонятное объявление в классе
Объявление переменных в классе C++
C++ Обязательно ли объявление виртуального деструктора в абстрактном классе
В классе инициализировать массив, в классе создать функцию вывода массива на экран C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mat_for_c
 Аватар для mat_for_c
115 / 110 / 19
Регистрация: 26.04.2013
Сообщений: 586
Завершенные тесты: 2
18.05.2013, 11:09     Объявление константы в классе #2
C++
1
2
3
4
5
static const char* bot;
BotPlayer(PlayerType playerType) : IPlayer(playerType)
{
    bot ="Yana";
}
Добавлено через 4 минуты
или же просто, без вызова конструктора
C++
1
static const char bot[] = "Yana"
что равносильно
C++
1
static const char bot[5] = "Yana"
Yandex
Объявления
18.05.2013, 11:09     Объявление константы в классе
Ответ Создать тему
Опции темы

Текущее время: 01:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru