Имя:    Пароль:      Помнить меня       
Unsorted   ~  Software  ~  Development and Design  ~  Помощь по С/С++ Все вопросы по С/С++ сюда
На страницу «  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11  »
Doctor_Mozg
Сообщение  21 Ноя 2006, 15:18  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской  Доверенный пользователь
C нами с 25.01.2005
Репутация: 133

Неоспоримым достоинством языка С++ является то, что он является языком одновременно и высокого и низкого уровней, что делает его незаменимым при разработке игр и других сложных и требовательных к производительности приложений.

P.S. Перед задаванием вопросов вроде "Что делает эта функция" настоятельно рекомендуется поизучать MSDN.
P.P.S. В ближайшее время выложу много литературы по этому вопросу.
В начало
Профиль : Фотоальбом : Личное Сообщение : ICQ
chaser
Сообщение  06 Июл 2007, 22:48  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской 
C нами с 04.02.2005
Репутация: 121.3

seb писал(а):
а чем тебе не понравилось декрементить end() ?


Кто-то когда-то мне сказал, что end() у list нельзя декрементить, потому что он, мол, реализуется нулевым указателем, а я, как дурак, поверил Стыдно

Спасибо Улыбочка
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID
seb
Сообщение  07 Июл 2007, 1:58  Ссылка : Ответить с цитатой
Возраст: 44 Пол: Мужской  Доверенный пользователь
C нами с 05.04.2005
Репутация: 121.1

chaser писал(а):
Кто-то когда-то мне сказал, что end() у list нельзя декрементить, потому что он, мол, реализуется нулевым указателем, а я, как дурак, поверил Стыдно
ну не важно как и чем оно реализуется, важно то что end() возвращает определённый итератор - а какой именно - можно узнать.
Судя по gcc 4.1.2 и выводу проги
#include <iostream>
#include <list>
#include <typeinfo>
using namespace std;

typedef list<int> List;

template <class>
void show_iter_type(Iter)
{
  cout << typeid(typename Iter::iterator_category).name() << endl;
}

int main()
{
  List l;
  List::const_iterator i = l.end();

  show_iter_type(i);

  return 0;
}
seb@seb:~/progs/test/cpp/list-iterators$ ./test
St26bidirectional_iterator_tag
у std::list - bidirectional_iterator - это значит что он поддерживает как + + так и - - Улыбочка

_____________________________
IRC WeNet #programming
jid: seb2000@jabber.ru
В начало
Профиль : Фотоальбом : Личное Сообщение : JabberID
seb
Сообщение  07 Июл 2007, 10:57  Ссылка : Ответить с цитатой
Возраст: 44 Пол: Мужской  Доверенный пользователь
C нами с 05.04.2005
Репутация: 121.1

странно... форум не даёт написать template (меньше)class Iter(больше) %)

_____________________________
IRC WeNet #programming
jid: seb2000@jabber.ru
В начало
Профиль : Фотоальбом : Личное Сообщение : JabberID
chaser
Сообщение  09 Авг 2007, 13:23  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской 
C нами с 04.02.2005
Репутация: 121.3

Возник вопрос, касающийся вложенных классов. Согласно пункту 11.8.1 стандарта ISO/IEC 14882:1998(E),
Цитата:
The members of a nested classes have no special access to members of an enclosing class, nor to classes of functions that have granted friendship to an enclosing class; the usual access rules (clause 11) shall be obeyed.

То есть, вложенный и содержащий его класс находятся в обычных отношениях.
Далее там же приводится пример с тремя ошибками:
class E {
    int x;
    class B { };

    class I {
        B b;                    //error: E::B is private
        int y;
        void f(E* p, int i)
        {
            p->x = i;           //error: E::x is private
        }
    };

    int g(I* p)
    {
        return p->y;            //error: I::y is private
    }
};

Компилятор g++ версий 4.1.2 и 3.3.6 ругается только на последнюю ошибку, а если закомментировать функцию int g(I* p), то вообще компилирует, даже не выдавая предупреждения при включенном -Wall.

Если указать ключи -std=c++98 и -pedantic, поведение g++ 4.1.2 не изменяется, а g++ 3.3.6 всё-таки выдает предупреждение:
test.cpp:6: warning: all member functions in class `E::I' are private

Вопрос: это ошибка в компиляторе, новое веяние в языке или я чего-то не понимаю? Улыбочка
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID
Eske2
Сообщение  10 Авг 2007, 0:01  Ссылка : Ответить с цитатой
Возраст: 38 Пол: Мужской 
C нами с 02.03.2007
Репутация: 94.9

Бесплатный компилятор, что с него возьмешь Улыбочка
На самом деле не все компиляторы соответствуют стандарту. В этом вся проблема.

_____________________________
А ты готов умереть?
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : ICQ
splav
Сообщение  10 Авг 2007, 0:05  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской  Доверенный пользователь
C нами с 22.01.2006
Репутация: 256.8

Eske2, хотя бы то, что им собирается 99% кода Linux дистрибутивов. Стандарт де факто...

Интересно как ICC себя ведёт с этим примером... Если аналогично - можно считать это новым веянием.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID : ICQ
seb
Сообщение  10 Авг 2007, 9:37  Ссылка : Ответить с цитатой
Возраст: 44 Пол: Мужской  Доверенный пользователь
C нами с 05.04.2005
Репутация: 121.1

Eske2 писал(а):
Бесплатный компилятор, что с него возьмешь Улыбочка
Бесплатность уже стала показателем качества ? Улыбочка Вот эти тоже бесплатные:
- Free Microsoft Visual C++ 2005 Express
- Borland C++ 5.5 Tools
- Intel C++ Compiler for Linux Non-Commercial Version
- Sun Studio Compilers and Tools
- Digital Mars C/C++ Compiler (Symantec C++ Replacement)

ps: Вы перепутали. gcc не бесплатный, а свободный.

_____________________________
IRC WeNet #programming
jid: seb2000@jabber.ru
В начало
Профиль : Фотоальбом : Личное Сообщение : JabberID
chaser
Сообщение  10 Авг 2007, 22:20  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской 
C нами с 04.02.2005
Репутация: 121.3

Сам великий Comeau ведет себя точно так же, кстати. Наверное, новомодные поправки к стандарту.

Добавлено спустя 19 минут 19 секунд:

Это поведение компилятора, как оказалось, описано в C++ Defect Report #45 и, насколько я понял, скорее всего будет включено в стандарт.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID
XuMuK
Сообщение  29 Авг 2007, 16:37  Ссылка : Ответить с цитатой
Возраст: 34 Пол: Мужской 
C нами с 04.02.2006
Репутация: 40.2

Пишу Код на С++
Библиотеки подключены
void _tmain (int argc, LPTSTR argv[])
{
TCHAR buf[200];
HANDLE P1;
LPWIN32_FIND_DATA LP;
scanf("%s",buf);
P1=FindFirstFile(buf,LP);
if (P1==INVALID_HANDLE_VALUE) printf("\nINVALID_HANDLE_VALUE\n");
FindClose(P1);
system("PAUSE");
}

Так всё время у меня либо ошибка с памятью возникает , либо INVALID_HANDLE_VALUE. Ввожу и C:\\*.txt и C:\*.txt и просто директорию, всё равно не получается. Кто уже использовал эти функции для поиска может исправть мои ошибки? или кто-нибудь знает другой способ поиска файлов?

Буду признателен, если ответы будут соответствовать вопросу.


Moderation by baldahin @ 29 Авг 2007, 17:26:
перенесено в соответствующую тему

_____________________________
НаправляЕмый собствЕнной тЕнью. вот так.
В начало
Профиль : Личное Сообщение
Рыся
Сообщение  29 Авг 2007, 18:24  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 15.04.2005
Репутация: 133.2

Проблема в невалидном указателе LP. Неужели используемый компилятор не выдаёт что-то вроде "Warning: Possible use variable without initialization" на строчке P1=FindFirstFile(buf,LP);. Неинициализирован указатель (и память не выделена).

И к тому же, если Вы уж получили ошибку то неплохо посмотреть что возвращает GetLastError, скорее всего там будет что нибудь о неправильном аргументе, либо неверном адресе. (проще всего в Watch list VS, если Вы, конечно, пользуетесь студией забить такую конструкцию: @err, hr, это будет LastError и текстовая мессага, если он её найдёт).

Можно предложить такие модификации:
LPWIN32_FIND_DATA LP; => WIN32_FIND_DATA LP;
...
P1=FindFirstFile(buf,LP); => P1=FindFirstFile(buf,&LP);

_____________________________
Время не существует, у него нет физического носителя в природе. Его выдумал человек, чтобы измерять скорость.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : E-mail : JabberID
XuMuK
Сообщение  30 Авг 2007, 8:47  Ссылка : Ответить с цитатой
Возраст: 34 Пол: Мужской 
C нами с 04.02.2006
Репутация: 40.2

Спасибо большое.
В этом и была ошибка (указатель LP ни на что не указывал и надо было использовать без LP)

_____________________________
НаправляЕмый собствЕнной тЕнью. вот так.
В начало
Профиль : Личное Сообщение
gamma
Сообщение  02 Сен 2007, 11:48  Ссылка : Ответить с цитатой
Пол: Женский 
C нами с 24.07.2007
Репутация: 27

Что лучше всего установить(Linux, Visual Studio,..) под С/C++?
В начало
Профиль : Блог : Личное Сообщение
chaser
Сообщение  02 Сен 2007, 13:05  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской 
C нами с 04.02.2005
Репутация: 121.3

gamma писал(а):
Что лучше всего установить(Linux, Visual Studio,..) под С/C++?


Выбор между Linux и Visual Studio — это сильно Весело

Смотря какие цели преследуешь. Если для изучения языка и под Windows, попробуй DevCpp — свободная среда разработки, дистрибутив обычно включает в себя компилятор gcc.

P.S.: на всякий случай, Linux — это не среда разработки, а операционная система Улыбочка
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID
Aristos
Сообщение  02 Сен 2007, 15:54  Ссылка : Ответить с цитатой
Возраст: 40 Пол: Мужской 
C нами с 14.10.2004
Репутация: 51.8

chaser, в общем то вопрос правильный Улыбочка под виндой альтернативы MSVS нет, если конечно не заморачиваться на всяких правах, лицензиях и т.д. Но ведь тот же gcc при использовании требует открытия исходных кодов Улыбочка (если ситуация не изменилась).

_____________________________
cogito ergo sum
В начало
Профиль : Фотоальбом : Личное Сообщение : ICQ
gamma
Сообщение  02 Сен 2007, 18:37  Ссылка : Ответить с цитатой
Пол: Женский 
C нами с 24.07.2007
Репутация: 27

chaser, за DevCpp спасибо.
chaser писал(а):
P.S.: на всякий случай, Linux — это не среда разработки, а операционная система

Хотя бы это я знаю Улыбочка
В начало
Профиль : Блог : Личное Сообщение
Показать сообщения:   
На страницу «  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11  »

Unsorted   ~  Software  ~  Development and Design  ~  Помощь по С/С++

Ответить на тему

Перейти:  





Powered by phpBB   © Unsorted Team  support@unsorted.me  promo@unsorted.me  Полезные скрипты