информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Модель надежности отказоустойчивой... 
 NSA выпустило Гидру 
 Неприятная уязвимость во всех WinRAR,... 
 Apple случайно превратила FaceTime... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Это "штучный" класс, а вот, как бы создать шаблон 10.01 09:18  Число просмотров: 240
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка> <ответить>
> https://stackoverflow.com/questions/1965249/how-to-write-a-
аналогичный Жабовскому
public enum Planet {
MERCURY (3.303e+23, 2.4397e6),
VENUS (4.869e+24, 6.0518e6),
EARTH (5.976e+24, 6.37814e6),
MARS (6.421e+23, 3.3972e6),
JUPITER (1.9e+27, 7.1492e7),
SATURN (5.688e+26, 6.0268e7),
URANUS (8.686e+25, 2.5559e7),
NEPTUNE (1.024e+26, 2.4746e7);

private final double mass; // in kilograms
private final double radius; // in meters
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
А нечто подобное описанному я уже сляпал... Это-то очевидно.
<ответить> <programming>
Как бы половчее реализовать на С++ класс, аналогичный java enum? 08.01 11:50  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка> <ответить>
В идеале бы так, чтобы все его экземпляры тащить из java в С копипастом.
как-то так 09.01 13:14  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка> <ответить>
https://stackoverflow.com/questions/1965249/how-to-write-a-java-enum-like-class-with-multiple-data-fields-in-c
https://www.tangiblesoftwaresolutions.com/articles/cplus_equivalent_to_java_enums.html
Это "штучный" класс, а вот, как бы создать шаблон 10.01 09:18  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка> <ответить>
> https://stackoverflow.com/questions/1965249/how-to-write-a-
аналогичный Жабовскому
public enum Planet {
MERCURY (3.303e+23, 2.4397e6),
VENUS (4.869e+24, 6.0518e6),
EARTH (5.976e+24, 6.37814e6),
MARS (6.421e+23, 3.3972e6),
JUPITER (1.9e+27, 7.1492e7),
SATURN (5.688e+26, 6.0268e7),
URANUS (8.686e+25, 2.5559e7),
NEPTUNE (1.024e+26, 2.4746e7);

private final double mass; // in kilograms
private final double radius; // in meters
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
А нечто подобное описанному я уже сляпал... Это-то очевидно.
error C2059: syntax error : 'constant' 13.01 09:06  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка> <ответить>
Горит мой деревянный москlll
Короче, сделал вот так:
#include "Enum.h"
#include "Item.h"

static class ItemType : public CEnum
{
public:
ItemType();
virtual ~ItemType();


CItem TYPE_STRING_ID_ITEM( 0x0001, 0, 4, "string_id_item");
CItem TYPE_TYPE_ID_ITEM( 0x0002, 1, 4, "type_id_item");
CItem TYPE_PROTO_ID_ITEM( 0x0003, 2, 4, "proto_id_item");
CItem TYPE_FIELD_ID_ITEM( 0x0004, 3, 4, "field_id_item");
CItem TYPE_METHOD_ID_ITEM( 0x0005, 4, 4, "method_id_item");
CItem TYPE_CLASS_DEF_ITEM( 0x0006, 5, 4, "class_def_item");
CItem TYPE_MAP_LIST( 0x1000, 16, 4, "map_list");
CItem TYPE_TYPE_LIST( 0x1001, 6, 4, "type_list");
CItem TYPE_ANNOTATION_SET_REF_LIST( 0x1002, 7, 4, "annotation_set_ref_list");
CItem TYPE_ANNOTATION_SET_ITEM( 0x1003, 8, 4, "annotation_set_item");
CItem TYPE_CLASS_DATA_ITEM( 0x2000, 9, 1, "class_data_item");
CItem TYPE_CODE_ITEM( 0x2001, 10, 4, "code_item");
CItem TYPE_STRING_DATA_ITEM( 0x2002, 11, 1, "string_data_item");
CItem TYPE_DEBUG_INFO_ITEM( 0x2003, 12, 1, "debug_info_item");
CItem TYPE_ANNOTATION_ITEM( 0x2004, 13, 1, "annotation_item");
CItem TYPE_ENCODED_ARRAY_ITEM( 0x2005, 14, 1, "encoded_array_item");
CItem TYPE_ANNOTATIONS_DIRECTORY_ITEM(0x2006, 15, 4, "annotations_directory_item");
};
Соответственно, создал CEnum и CItem c как бы я тайпы не переименовывал, как бы я не переписывал аргументы и что бы не менял в конструкторе получаю error C2059: syntax error : 'constant'.
Кака исчезает только, если конструктор делаю без аргументов.
В .h не возможно инициализировать объекты. 19.01 06:13  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка> <ответить>
А если я их объявлю в .cpp, то они только там видны и будут. Как это разрулить так, чтобы было типа
CItem TYPE_STRING_ID_ITEM( 0x0001, 0, 4, "string_id_item"); и этот TYPE_STRING_ID_ITEM был доступен из других модулей
как с любой другой переменной 21.02 19:12  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка> <ответить>
> А если я их объявлю в .cpp, то они только там видны и
> будут. Как это разрулить так, чтобы было типа
> CItem TYPE_STRING_ID_ITEM( 0x0001, 0, 4, "string_id_item");
> и этот TYPE_STRING_ID_ITEM был доступен из других модулей

Инициализировать в одном файле, в другом объявлять как extern.
Хвост древнего С 20.01 05:45  
Автор: Zef <Alloo Zef> Статус: Elderman
Отредактировано 20.01 05:46  Количество правок: 1
<"чистая" ссылка> <ответить>
Разобрался в чем дело: это хвост дообъектной эры. Компоновщик умеет предотвращать повторные объявления переменных при многократном инклюде хедера, но не умеет предотвращать повторную инициализацию. Потому можно объявлять в хедере только те объекты, у которых конструктор не имеет параметров. Хреново...
1






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2019 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach