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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Каким компилятором С++ вы пользуетесь? Голосуем... 
:(
    Опции темы
 
Каким комилятором С++ вы пользуетесь?
Borland C++ Builder [ 11 ]  [10.48%]
Microsoft Visual Studio [ 47 ]  [44.76%]
Dev-C++ [ 11 ]  [10.48%]
Gnu C++ [ 22 ]  [20.95%]
MinGW [ 11 ]  [10.48%]
Другим [ 3 ]  [2.86%]
Всего проголосовавших: 105
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
СтадоБаранов
Дата 11.6.2009, 06:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 10.6.2009

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



andrew_121, тише, православный... В висте игры работают, я чего пользователям ещё надо?... Сам пользую gcc... Нравится то, что он не отходит от стандарта ISO... Чего не скажешь о M$ и Borland... И ещё... иногда в GCC попадаются такие небольшие неприятные ошибки(или особенности?...)... Например тело виртуального деструктора не может быть пустым(недопустимо "virtual ~myclass() = 0;"), а ещё не так давно я наткнулся на проблему организации класса Singleton... он просто не компилировался, когда в полях класса присутствовал статический указатель на экземпляр этого класса, пришлось изворачиваться с глобальной переменной... А по оптимизации gcc действительно может проигрывать, но зато gcc работает на множестве платформ и ОС... А вообще, оптимизация - это дело программиста... Хороший код всё равно мало оптимизируется, а плохой и с оптимизацией работает медленней...

Это сообщение отредактировал(а) СтадоБаранов - 11.6.2009, 06:18
PM MAIL   Вверх
andrew_121
Дата 11.6.2009, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(СтадоБаранов @  11.6.2009,  06:11 Найти цитируемый пост)
тише, православный...

Чё за гон?!


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Andrey44
Дата 11.6.2009, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

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



Цитата(andrew_121 @  11.6.2009,  05:14 Найти цитируемый пост)
Ваще странно что тут хоть что-то работает. А когда я узнал что микрософт после выхода висты, все еще остался на рынке, то ваще подумал что мир сошел с ума.
Не совсем понятное высказывание. Дома виста, на работе виста - все работает нормально. Не пойму, почему все так против висты? Или у большинства компы заточены под Win95? Тогда конечно.
К концу года выйдет Seven и я собираюсь переходить на новую ось. Если кому нравятся линухи, маки - это дело их. Но зачем говорить то чего не знаешь?



--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 11.6.2009, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(СтадоБаранов @  11.6.2009,  06:11 Найти цитируемый пост)
Например тело виртуального деструктора не может быть пустым(недопустимо "virtual ~myclass() = 0;"), 

Цитата

A destructor can be declared virtual (10.3) or pure virtual (10.4); if any objects of that class or any
derived class are created in the program, the destructor shall be defined
. If a class has a base class with a
virtual destructor, its destructor (whether user- or implicitly- declared) is virtual.


Цитата(СтадоБаранов @  11.6.2009,  06:11 Найти цитируемый пост)
он просто не компилировался, когда в полях класса присутствовал статический указатель на экземпляр этого класса

Код

class A
{
public:
    static A* ptr_;
};

так что ли? очень сомнительно. Можно конкретный пример того что не работает?

Я использую и gcc и Visual Studio.
Для тех кто только начитает изучать язык, на мой взгляд лучше gcc, так как микрософт учит плохому. Студийный компилятор позволяет писать то, что не соответствует стандарту, а это приучает начинающих к неправильным конструкциям. 

Это сообщение отредактировал(а) azesmcar - 11.6.2009, 09:41
PM   Вверх
mes
Дата 11.6.2009, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(azesmcar @  11.6.2009,  08:20 Найти цитируемый пост)
так что ли? очень сомнительно. Можно конкретный пример того что не работает?

ну если статическая переменная снаружи не определена, то компилироваться и не будет.


Цитата(СтадоБаранов @  11.6.2009,  05:11 Найти цитируемый пост)
в GCC попадаются такие небольшие неприятные ошибки(или особенности?...)... 

Описанные причины, это поведение соответствующее стандарту. А вот другие компиляторы, которые допускают подобное,  идут на встречу пользователю, только вот поведение их кода от этого 
становится непредсказуемым. Непредсказуемым в том смысле, что этот код на другом компиляторе  будет обладать другим поведением (в лучшем случае не откомпилируется, в противном будете долго искать ошибку). А также в том, что  (насколько я знаю) стандарт обсуждаемого компилятора(или его отличия от оригинального) как таковой не имеется, что делает из программиста слепого мышонка, программирующего на ощупь со всеми вытекающими последствиями.
smile
Цитата(azesmcar @  11.6.2009,  08:20 Найти цитируемый пост)
Для тех кто только начитает изучать язык, на мой взгляд лучше gcc, так как микрософт учит плохому. Студийный компилятор позволяет писать то, что не соответствует стандарту, а это приучает начинающих к неправильным конструкциям. 

 smile 

Это сообщение отредактировал(а) mes - 11.6.2009, 10:30


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 11.6.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(mes @  11.6.2009,  10:29 Найти цитируемый пост)
ну если статическая переменная снаружи не определена, то компилироваться и не будет.

 smile 

Цитата(mes @  11.6.2009,  10:29 Найти цитируемый пост)
Описанные причины, это поведение соответствующее стандарту. А вот другие компиляторы, которые допускают подобное,  идут на встречу пользователю, только вот поведение их кода от этого 

это даже студия не проглотит.

Вообще уличить gcc в несоответствии стандарту пока что у меня не удавалось. smile 
PM   Вверх
zim22
Дата 11.6.2009, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

Репутация: 29
Всего: 69



Цитата(azesmcar @  11.6.2009,  09:20 Найти цитируемый пост)
Для тех кто только начитает изучать язык, на мой взгляд лучше gcc, так как микрософт учит плохому. 

у MSVC ошибки понятней. 
Код

#include <complex>
void cmp() {
  complex<double> cd(10, 20);
  complex<double> res = cd * 20;
}

MSVC : error C2784: 'std::complex<_Other> std::operator *(const _Ty &,const std::complex<_Other> &)' : could not deduce template argument for 'const std::complex<_Other> &' from 'int'
1>        c:\program files\microsoft visual studio 9.0\vc\include\xcomplex(79) : see declaration of 'std::operator *'

 error C2782: 'std::complex<_Other> std::operator *(const std::complex<_Other> &,const _Ty &)' : template parameter '_Ty' is ambiguous
1>        c:\program files\microsoft visual studio 9.0\vc\include\xcomplex(69) : see declaration of 'std::operator *'
1>        could be 'int'
1>        or       'double'

gcc выдаёт это:
main.cpp|10|error: no match for 'operator*' in 'cd * 20'



--------------------
PM MAIL   Вверх
azesmcar
Дата 11.6.2009, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(zim22 @  11.6.2009,  10:43 Найти цитируемый пост)
у MSVC ошибки понятней. 

пусть привыкают.. а кому сейчас легко? smile 
PM   Вверх
Lazin
Дата 11.6.2009, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Цитата(СтадоБаранов @  11.6.2009,  06:11 Найти цитируемый пост)
Например тело виртуального деструктора не может быть пустым(недопустимо "virtual ~myclass() = 0;")

оправдываешь свой ник smile
Цитата(zim22 @  11.6.2009,  10:43 Найти цитируемый пост)
у MSVC ошибки понятней

ага, в отличии от gcc
PM MAIL Skype GTalk   Вверх
andrew_121
Дата 11.6.2009, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(Lazin @  11.6.2009,  11:33 Найти цитируемый пост)
оправдываешь свой ник

 smile  smile  smile  smile  smile  smile  smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
ДокторТуамОсес
Дата 11.6.2009, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 8.6.2009

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



ММмм....Да  smile 
А Борланд сдаёт позиции. Сходит на нет постепенно
--------------------
"Извините! А это ничего, что я говорю в тот момент, когда Вы меня перебиваете?"™ 
PM MAIL   Вверх
СтадоБаранов
Дата 11.6.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 10.6.2009

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



как говорится... кушайте тролли дорогие... ну к примеру я хочу определить абстрактный класс, где тупо будет только интерфейс... набор методов, пустых. и нахрена ему деструктор?... Экземпляры этого класса никогда не будут созданы, а следовательно и уничтожены.... Класс может являться только родителем... на то он и абстрактный... Ну да это логические выводы, я весь ИСО наизусть не помню... Сейчас взглянул, про унаследованные классы тоже написано...

Хме... и указатель на эксемпляр класса в статичном поле класса вне закона?... Это ошибка в gcc... Даже на линуксорге на эту тему срач был... кажется решение было найдено, нужно было пересобрать gcc с какими-то хитрыми параметрами... %)

православный... это про дебиан... XD

Это сообщение отредактировал(а) СтадоБаранов - 11.6.2009, 16:00
PM MAIL   Вверх
azesmcar
Дата 11.6.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(СтадоБаранов @  11.6.2009,  15:57 Найти цитируемый пост)
как говорится... кушайте тролли дорогие... ну к примеру я хочу определить абстрактный класс, где тупо будет только интерфейс... набор методов, пустых. и нахрена ему деструктор?... Экземпляры этого класса никогда не будут созданы, а следовательно и уничтожены.... Класс может являться только родителем... на то он и абстрактный... Ну да это логические выводы, я весь ИСО наизусть не помню... Сейчас взглянул, про унаследованные классы тоже написано...

Почему это так сделано - другой вопрос. Вы упрекаете ГЦЦ в том что он не соответствует стандарту. Я вам стандарт процитировал. Упрек - ни к месту. Дальше, что касается того -

Цитата(СтадоБаранов @  11.6.2009,  15:57 Найти цитируемый пост)
Экземпляры этого класса никогда не будут созданы, а следовательно и уничтожены

Ошибаетесь
Код

class A
{
public:
    A() {
        std::cout << "A::A()" << std::endl;
    };
    virtual void foo() = 0;
};

class B : public A
{
public:
    B () {
        std::cout << "B::B()" << std::endl;
    };
    virtual void foo() {}
};

создан экземпляр класса B, который в свою очередь создает экземпляр класса A. Вызывается его конструктор (можете проверить, следовательно должен вызыватся и деструктор). Это не сишарп и тут не понятия интерфейс, абстрактный класс вполне может содержать переменные-члены которые нужно инициализировать, выделять для них память (следовательно и удалять тоже).

PM   Вверх
andrew_121
Дата 11.6.2009, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(СтадоБаранов @  11.6.2009,  15:57 Найти цитируемый пост)
Хме... и статичные поля класса вне закона?... Это ошибка в gcc... Даже на линуксорге на эту тему срач был... кажется решение было найдено, нужно было пересобрать gcc с какими-то хитрыми параметрами... %)

Знаешь что хреновому танцору мешает?...да да да я**а.



Цитата(СтадоБаранов @  11.6.2009,  15:57 Найти цитируемый пост)
православный... это про дебиан... XD

Что общего?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
mes
Дата 11.6.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(СтадоБаранов @  11.6.2009,  14:57 Найти цитируемый пост)
набор методов, пустых. и нахрена ему деструктор?..

претензии к стандарту, нужную цитату из которого привел несколькими постами выше azesmcar, a gcc всего лишь следует правилам. 
И если Вам не понятно для чего необходимо  физическое определение деструктора, то создайте для этого тему, а не флеймите.
 smile 




--------------------
PM MAIL WWW   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1062 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


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

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