Php define
Автор Sooqua задал вопрос в разделе Другие языки и технологии
[C++] #define и получил лучший ответ
Ответ от Николай Веселуха[гуру]
#define - директива препроцессора, используемая для определения символьных констант, содержит идентификатор и символьную строку. Компилятор, встретив в исходном коде программы идентификатор, тупо, подставляет вместо него символьную строку, которая соответствует этому идентификатору.
enum - перечисление - множество поименованных констант, типа int. Каждая из констант может быть инициализирована обычным образом, если инициализация отсутствует, то первая константа имеет значение равное 0, каждая последующая увеличивает своё значение на единицу.
В обоих случаях ни о каком прямом и косвенном доступе не может быть и речи.
Что же касается инициализированных полей класса, то мало сделать их статическими, также требуется сделать их и константными.
....
class test {
public:
static const short MoveType_None = 0;
static const short MoveType_Left = 1;
};
int main() {
test::MoveType_Left;// теперь можно обратиться
return 0;
}
То же, но со структурой.. .
struct test {
static const short MoveType_None = 0;
static const short MoveType_Left = 1;
};
int main() {
test::MoveType_Left;
return 0;
}
enum религия использовать запрещает?
Создай класс, и вызывай значения статистических элементов класса без создания экземпляра..
Согласен с предыдущим, но статические константы должны описываться за пределами описания класса.
Т. е. ,
struct test { // описание класса в заголовочном файле (*.H)
static const short MoveType_Nоne;
static const short MoveType_Left;
};
const short test::MoveType_Nоne = 0; // эта строка должна быть в другом файле (*.CPP), причём только в одном
Логичнее использовать enum
и namespace
namespace MoveType
{
enum { None = 0, Left = 1 };
}
или структуру/класс
struct MoveType
{
enum { None = 0, Left = 1 };
};
Обращаться через ::, а не через.
например, MoveType::Left
PHP mySQL проверка на заполнение if( $_POST==true)
я обычно проверяю
if(!isset($_POST['кнопка'])
можно еще стопицот вариантов придумать
подробнее...
Чем опасен прямой доступ к файлу PHP если в нем всего лишь html форма? Нужно делать запрет или нет?
что вы имеете ввиду под прямым доступом? права на запись - да
на чтение, но сервер обрабатывает
подробнее...
Помогите написать скрипт авторизации на PHP
<?php
if (isset($_COOKIE["login"]))
{
подробнее...
Авторизация с проверкой пароля на php
не особо в пхп, но:
зачем define и им определяются левые неиспользуемые константы?
и почему
подробнее...
почему в файле index.php в joomla 3 нет исходного кода.
php-скрипт тебе этот контент и генерирует.
Дмитрий Канидьев
(69178)
подробнее...
Расскажите поподробнее о defining, non-defining relative clauses. Заранее спасибо
Appendix 6. Defining and non-defining relative clauses.
Определительные придаточные
подробнее...
Notice Undefined variable: как исправить?
Вам еще нужно выяснить почему не устанавливаются эти переменные, но условия можно преобразовать
подробнее...
Delphi 7. Как узнать, на какой день недели приходится последний день указанного месяца указанного года?
Unit
SysUtils
Category
date/time routines
function DayOfWeek(Date:
подробнее...
kapish как переводится ?
понимаешь!
(слово итальянского происхождения. как правильно по-итальянски пишется, незнаю.:
подробнее...
Не могу зайти в админку opencart
посмотри файл
admin/config.php
p.s.
у opencart почему то два файла config
подробнее...
В одном аниме я встретила слова: вайна и аники. Что они значат?
Ну, Аники - это старший брат (или обращение к старшему члену банды якудза) , а вот вайна -
подробнее...
что такое свега ?
СВЕГА (ЭС*ВЭ*ГА) - русское (искаженное) произношение англ. аббревиатуры "SVG",
что в свою
подробнее...