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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инициализация структуры. Может кто знает с чем это связано может 
:(
    Опции темы
Neitron
Дата 10.11.2005, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

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



Есть структура.
Код

        enum SQLType{
                NONE,
                BY_NAME
        };
        struct STSQLNode{
                SQLType Type;
                AnsiString SQL;
        };


И Вот такая допустим простая инциализация
Код

        STSQLNode S = {0};


Ошибка компилятора
Цитата

[C++ Error] WDB.cpp(476): E2034 Cannot convert 'int' to 'STSQLNode'



--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
_hunter
Дата 10.11.2005, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



обнулять ссылку на объект -- опрометчивое решение...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Exekutor
Дата 10.11.2005, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 1.11.2005
Где: Казахстан. Костан ай

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



Если хочешь обнулить ссылку, то vj;yj воспользоваться: STSQLNode S = NULL;



--------------------
[color=blue][size=2]En taro addun, ma sol larinas[/size][/color]
PM MAIL   Вверх
Neitron
Дата 10.11.2005, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

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



_hunter
Не хочу обнулять ссылку.

Это я для простоты привел.
В итоге нужно так
Код

        STSQLNode S = {Type,SQL};

Вместо
Код

        S.Type = Type;
        S.SQL = SQL;

Я не понел где вы ссылку нашли? Обнуляется объект а не ссылка.

Exekutor
В С++ желательно использовать 0, а не NULL smile


Это сообщение отредактировал(а) Neitron - 10.11.2005, 15:17


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
Exekutor
Дата 10.11.2005, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 1.11.2005
Где: Казахстан. Костан ай

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



Первый раз вижу такую инициализацию. Сомневаюсь, что так вообще можно задавать значения. Это тебе и сказал компилятор


--------------------
[color=blue][size=2]En taro addun, ma sol larinas[/size][/color]
PM MAIL   Вверх
Neitron
Дата 10.11.2005, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

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



Exekutor
Если ты первый раз видишь, это не значит что такого нет!
Тебе же говорили, не делай утверждения в том, о чем плохо знаешь.

Это сообщение отредактировал(а) Neitron - 10.11.2005, 15:18


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
Exekutor
Дата 10.11.2005, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 1.11.2005
Где: Казахстан. Костан ай

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



Разуй глаза, я ничего не утверждал, я ПРЕДПОЛОЖИЛ.


--------------------
[color=blue][size=2]En taro addun, ma sol larinas[/size][/color]
PM MAIL   Вверх
Neitron
Дата 10.11.2005, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

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



Нервы? smile

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


Exekutor
Спокойно)))
Вот выполни код, и больше не сомневайся
Код
struct {int i;char * s;} d = {10,"ssssssss"};


да и еще обнулить ссылку не получится никогда. smile

Это сообщение отредактировал(а) Neitron - 10.11.2005, 15:28


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
_hunter
Дата 10.11.2005, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



AnsiString -- класс, представленный ссылкой. ты ее хочеш обнулить.
+ компилятор понятия не имеет как нужно инициализировать сложные объекты ( в приведенном примере сложных объектов нет )
поэтому проще просто написать класс с конструктором по умолчанию


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Neitron
Дата 10.11.2005, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

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



_hunter
Кхм, ссылкой ? Я думал он является неявным указателем.
Тем более споконой можно делать так
AnsiString Str = 0;
Не суть.
Я ничего обнулять не хочу, я хочу
Код

STSQLNode S = {Type,SQL};

Вот так вот%smile(( А оно не получатсяsmile((((((((((
Добавлено @ 15:52
AnsiString не виноват, я заменил просто на std::string, тоже самое....

Класс с конструктором для такого простого конкретного типа, на мой взгляд смешно.
Я не понимаю почему такая инициализая в моем случае не работаетsmile((

Это сообщение отредактировал(а) Neitron - 10.11.2005, 15:54


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
_hunter
Дата 10.11.2005, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата
Тем более споконой можно делать так
AnsiString Str = 0;

это работает конструктор от инт-а ( а не то, что ты думаеш )

что такое Type и что такое SQL?

Цитата
AnsiString не виноват, я заменил просто на std::string, тоже самое....

а теперь замени на int


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Neitron
Дата 10.11.2005, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

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



_hunter
Согласен...
Код

AnsiString Str = 0;

Аналогично что и
Код

AnsiString Str = AnsiString(0);

так почему в том же случае у меня не получается аналогичная ситуация?

AnsiString SQL=...;
SQLType Type=...;
Добавлено @ 16:01
Воообщем все. Понел.
Если AnsiString ссылка, то тогда действительно не получится так инициализировать.
Нужен конструкутор по-умолчанию. (10.4.6.1)

Это сообщение отредактировал(а) Neitron - 10.11.2005, 16:07


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.3308 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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