Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - gepar

Страницы: Назад 1 ... 245 246 247 248 [249] 250 251 252 253 ... 431 Далее
7441
Дайджест / Re: Игры для 3DS - оценки Famitsu
« : 08 Март 2011, 14:11:01 »
Баттхерт будет потом у купивших консоль по предзаказу  :D Хотя если ds предварительно захавала их мозг то тогда баттхерт у них наблюдаться не будет.

7442
Hard'n'Soft / Re: Програмирование на C++
« : 08 Март 2011, 14:08:32 »
HoRRoR,ну я считал что для перегрузки операции нужно чтобы она производилась по значению (те потому и &). Хотя я наверное мрачно объяснил что я хотел написать, ну да ладно, упустим это.
Цитата: HoRRoR
int* - тип, звёздочка относится к инту. int& - то же самое.
Я пока что не знаю что это такое и что так вообще можно  :) Ну и вообще раздел по перегрузке операторов Дейтела я ещё не дочитал, то была проба пера.

Добавлено позже:
Встречный вопрос: а как же задать тип int*, компилятор же всегда думает что это указатель и что * относится к имени переменной следующей после int (например int* abc).

7443
Дайджест / Re: Nintendo 3DS "уже взломали"
« : 08 Март 2011, 13:06:42 »
EdHell, запрещены прокси что есть в списке так что методы обхода всегда есть  :)

7444
Hard'n'Soft / Re: Програмирование на C++
« : 08 Март 2011, 13:04:58 »
Цитата: HoRRoR
А ошибка у тебя потому что нехрен ссылку типа void делать.
:) Так я же думал что & относиться к operator=, а не к void. Всегда ведь & относиться к тому что за ним написано, а не перед.

7445
Дайджест / Re: Nintendo 3DS "уже взломали"
« : 08 Март 2011, 12:02:37 »
Цитата: DeniSS
Дык... прокси или динамический IP - и всё))
Ну тогда и на эму-ленд ходи через прокси, а вдруг сони или нинтендо накроет сайт и всех кто хоть что-то писал на форуме начнёт судить.

7446
Дайджест / Re: Игры для 3DS - оценки Famitsu
« : 08 Март 2011, 11:58:23 »
Rockman Z,да такие новости ходят каждые пол-года, ты что впервые с ними столкнулся?

7447
Hard'n'Soft / Re: Програмирование на C++
« : 08 Март 2011, 11:56:13 »
HoRRoR, ну как зачем?  :) Ну вот набросок маленький опять на ту же самую тему (создание своего массива), фантазии что-то у меня вчера не хватило по поводу темы очередной программы-примера  :) Здесь меньше проверок, но дело не в них, посмотри пожалуйста на перегрузку оператора присваивания, там я уже в комментарии расписал что получается если указать void (несмотря на то что класс ничего не возвращает) поэтому я оставил как тип название класса (Test).

# include <iostream>
# include <iomanip>
using namespace std;

class Test
{
    friend ostream &operator<<( ostream &output, Test &a);//перегрузка глобального оператора вывода
public:
    Test(int a=10)//конструктор для нового "массива"
    {
        size=a;
        ptr=new int [size];
        for (int i=0;i<size;i++)
         ptr[i]=0;
    }

//перегрузка оператора =
//по сути ведь нужен void так как вызов же будет
//что-то типа xyz.operator=(abc)
//+ ничего возвращать ведь не надо, но
//если написать void то компилятор будет ругаться
//на строку 24(где открывается { со сл. ошибкой:
// 24|error: cannot declare reference to `void'|

    Test &operator=(Test b)
    {
        for (int i=0;i<size;i++)
         this->ptr[i]=b.ptr[i];
    }


    int &operator[](int x)// перегрузка [] для обращения к нужному элементу "массива"
    {
        return this->ptr[x];
    }

private:
    int size;// размер массива
    int *ptr; // указатель на него (массив)
};

ostream &operator<<( ostream &output, Test &a)
{
    for (int i=0;i<a.size;i++)
     output<<a.ptr[i]<<" ";
    output<<'\n';
}

int main()
{
    Test abc(5);// новый "массив" размером 5
    Test xyz(5);
    cout<<abc;//вывод abc
    abc[3]=100;//изменяем 3ий элемент на 100
    xyz=abc;//присваиваем xyz значения abc
    cout<<xyz;//проверяем было ли присваивание
    cout<<abc;//проверяем равен ли 100 3ий элемент
    return 0;
}


7448
EdHell,нет, наверное он надеется что в dx 11 ему удастся сразу реализовать все те настройки по прозрачности что вызываются через F11. Ну да Винд же тоже что-то писал о том что в dx11 всё будет круто с этой прозрачностью, ну будем ждать.

7449
Xott@Bb!4b,в Украине аналогичная ситуация, о snes никто и не слышал и сейчас на базарах я видел даже старенький atari jaguar с 3до но ни snes ни N64 ни катриджей к ним так никогда в живую не встречал.

7450
FEV,к многих операторов если ошибёшься с точкой доступа (например пишешь beeline-kozli.ru) просто считают трафик как вап так что тут лучше быть повнимательнее.

7451
Портативные / Re: Sony NGP
« : 08 Март 2011, 00:27:12 »
ParagonUnits,ну от батареек с пандорой  - да, от взлома консолей - нет  :D

7452
Hard'n'Soft / Re: Програмирование на C++
« : 08 Март 2011, 00:19:14 »
Упростим задачу, вот код с дописанными комментариями  :)
# include <iostream>
# include <iomanip>
# include <cstdlib>
using namespace std;

class Array
{
    friend istream &operator>>(istream &input, Array &a); // ввод данных в класс Array через cin
    friend ostream &operator<<(ostream &output, const Array &a);// вывод данных класса Array через cout
public:

//конструктор выделяет место под нужное колличество элементов массива
//по умолчанию на 10 элементов
    Array (int arraySize=10)
    {
        size=(arraySize>0 ? arraySize : 10);
        ptr=new int[size];
        for (int i=0;i<size;i++)
         ptr[i]=0;
    }
//конструктор копии Array (чтобы можно было сделать array1(array2))
    Array (const Array &arrayToCopy)
     :size (arrayToCopy.size)
    {
        ptr=new int[size];
        for (int i=0;i<size;i++)
         ptr[i]=arrayToCopy.ptr[i];
    }

//деструктор
    ~Array()
    {
        delete [] ptr;
    }

//возвращает размер массива
    int getSize() const
    {
        return size;
    }

//перегрузка оператора присваивания для класса Array
    Array operator=(const Array &right)
    {
        if (&right!=this)
        {
            if (size!=right.size)
            {
                delete [] ptr;
                size=right.size;
                ptr=new int [size];
            }
            for (int i=0;i<size;i++)
             ptr[i]=right.ptr[i];
        }
        return *this;
    }
//определения равны ли два массива
    bool operator==(const Array &right) const
    {
        if (size!=right.size)
         return false;
        for (int i=0;i<size;i++)
         if (ptr[i]!=right.ptr[i])
          return false;
        return true;
    }

//определение не равенства двух массивов
    bool operator!=(const Array &right) const
    {
        return !(*this==right);
    }

//возможность обращения к нужному элементу массива
//возвращает указатель на этот элемент чтобы обеспечить присваивание
//НЕ РАБОТАЕТ
    Array operator [](int subscript)
    {
        if (subscript<0 || subscript >=size)
        {
            cerr<<"\nError: Subscript "<<subscript
            <<" out of range"<<endl;
            exit (1);
        }
        return ptr[subscript];
    }

//возможность обращения к нужному элементу массива для const даных
    Array operator[](int subscript) const
    {
        if (subscript<0 || subscript>=size)
        {
            cerr<<"\nError: Subscript "<<subscript
            <<" out of range"<<endl;
            exit (1);
        }
        return ptr[subscript];
    };

private:
    int size; //размер массива
    int *ptr; //указатель на данные массива
};

istream &operator>>(istream &input, Array &a)
{
    for (int i=0;i<a.size;i++)
     input>>a.ptr[i];
    return input;
};

ostream &operator<<(ostream &output, const Array &a)
{
    int i;
    for (i=0;i<a.size;i++)
    {
        output<<setw(12)<<a.ptr[i];
        if ((i+1)%4==0)
         output<<endl;
    }
    if (i%4!=0)
     output<<endl;

    return output;
};

int main()
{
   Array integers1(7);
   Array integers2;
   cout<<integers1;
   integers1[4]=100;//не изменяет integers1[4] так как функция получает копию
   cout<<integers1;
   return 0;
}
Код компилируется, но беда в другом - при перегрузке операторов передаются копии. При попытке написать например
Array& operator[](int subscript) const
я получаю ошибку что у меня там мол дальше возвращается же ссылка на int данные и мол так нельзя. Пишу
int &operator[](int subscript) const
опять же таки всё компилируется но блин опять же таки нужный объект класса не модифицируется (это видно по выводу данных до и после попытки заменить 4 элемент массива в main).
 

Добавлено позже:
А, тьфу, я редактировал функцию что для const данных, тогда там просто int &operator[](int subscript) const и всё будет работать. Короче вот так тогда должно быть:
# include <iostream>
# include <iomanip>
# include <cstdlib>
using namespace std;

class Array
{
    friend istream &operator>>(istream &input, Array &a); // ввод данных в класс Array через cin
    friend ostream &operator<<(ostream &output, const Array &a);// вывод данных класса Array через cout
public:

//конструктор выделяет место под нужное колличество элементов массива
//по умолчанию на 10 элементов
    Array (int arraySize=10)
    {
        size=(arraySize>0 ? arraySize : 10);
        ptr=new int[size];
        for (int i=0;i<size;i++)
         ptr[i]=0;
    }
//конструктор копии Array (чтобы можно было сделать array1(array2))
    Array (const Array &arrayToCopy)
     :size (arrayToCopy.size)
    {
        ptr=new int[size];
        for (int i=0;i<size;i++)
         ptr[i]=arrayToCopy.ptr[i];
    }

//деструктор
    ~Array()
    {
        delete [] ptr;
    }

//возвращает размер массива
    int getSize() const
    {
        return size;
    }

//перегрузка оператора присваивания для класса Array
    Array &operator=(const Array &right)
    {
        if (&right!=this)
        {
            if (size!=right.size)
            {
                delete [] ptr;
                size=right.size;
                ptr=new int [size];
            }
            for (int i=0;i<size;i++)
             ptr[i]=right.ptr[i];
        }
        return *this;
    }
//определения равны ли два массива
    bool operator==(const Array &right) const
    {
        if (size!=right.size)
         return false;
        for (int i=0;i<size;i++)
         if (ptr[i]!=right.ptr[i])
          return false;
        return true;
    }

//определение не равенства двух массивов
    bool operator!=(const Array &right) const
    {
        return !(*this==right);
    }

//возможность обращения к нужному элементу массива
//возвращает указатель на этот элемент чтобы обеспечить присваивание
    int &operator [](int subscript)
    {
        if (subscript<0 || subscript >=size)
        {
            cerr<<"\nError: Subscript "<<subscript
            <<" out of range"<<endl;
            exit (1);
        }
        return ptr[subscript];
    }

//возможность обращения к нужному элементу массива для const даных
    int operator[](int subscript) const
    {
        if (subscript<0 || subscript>=size)
        {
            cerr<<"\nError: Subscript "<<subscript
            <<" out of range"<<endl;
            exit (1);
        }
        return ptr[subscript];
    };

private:
    int size; //размер массива
    int *ptr; //указатель на данные массива
};

istream &operator>>(istream &input, Array &a)
{
    for (int i=0;i<a.size;i++)
     input>>a.ptr[i];
    return input;
};

ostream &operator<<(ostream &output, const Array &a)
{
    int i;
    for (i=0;i<a.size;i++)
    {
        output<<setw(12)<<a.ptr[i];
        if ((i+1)%4==0)
         output<<endl;
    }
    if (i%4!=0)
     output<<endl;

    return output;
};

int main()
{
   Array integers1(7);
   Array integers2;
   cout<<integers1;
   integers1[4]=100;//не изменяет integers1[4] так как функция получает копию
   cout<<integers1;
   return 0;
}
Сейчас только в main протестирую всё ли работает теперь как положено.

Добавлено позже:
HoRRoR,читаю, просто этот совет твой не для всех функций помог, ну да я уже "добил" этот класс и теперь вроде перегрузка операторов стала понятнее.

Добавлено позже:
Небольшой вопрос на тему правильно ли я понял:
если у меня идёт перегрузка оператора "внутри" класса и она возвращает что-то (в данном случае ссылку на данные типа int) то я пишу так:
    int operator[](int subscript) const
    {
        if (subscript<0 || subscript>=size)
        {
            cerr<<"\nError: Subscript "<<subscript
            <<" out of range"<<endl;
            exit (1);
        }
        return ptr[subscript];
    };
А если ничего не возвращает или возвращает указатель *this то я вместо того чтобы написать void должен писать имя класса, так?

7453
Цитата: DJ Sined
Уверен, вышел бы Вольшенштайн на Сеге о ней бы отзывались намного лучше. Сега никогда не подвергалась цензуре. (Никогда не забуду блюющего босса из Doom Troopers)
А как он косточками метко бросал то! А возможность отстрелить врагу башку . Эх, а ведь сейчас это не впечатляет в 3д шутерах.
У нинтендо ещё цензуре MK помню поддавался.

7454
А куда подевалась возможность выбирать место поиска (в пользователях/на всём форуме/ в текущей теме), разве она кому-то мешала?

7455
EdHell,ну я и предполагал что-то такое, разве что дату выхода этой версии я видел ещё до того как исходники нуля были открыты что странно.

7456
Дайджест / Re: Запущен сервис OnLive
« : 07 Март 2011, 23:41:24 »
ALEX_230_VOLT,ну сняли давно вроде + сервис в Европе тоже функционирует. Да только всё равно в России серверов нет так что пинг большой и получается не совсем игры, ну может в какую монополию или там стратегию играть в таких случаях можно, но не в гонки и шутеры.

7457
Ну эмуляторы и программки это само собой, а из игр Lumines 1/2 так как не надоедает.

7458
Портативные / Re: Sony NGP
« : 07 Март 2011, 23:36:06 »
ParagonUnits, так дело в том что у сони не обычные батарейки как у ноутов. У сони в батарейке часть защиты, которую негодные хакери взяли сломали и довели до конвеера - изготовляешь одну батарейку-пандору и можешь быть местным гуру-прошивальщиком psp. Вот сони это не понравилось и начиная с go батарейку так просто не выковырять.

7459
Цитата: EdHell
lost_hero, знаешь, в чем прикол? Как раз через нее ни разу не удалось выйти.
Да ладно ? Через неё ведь вообще проще простого и притом удобно, выбираешь в настройках оператор (российские и украинские опсосы присутствуют) нажимаешь коннект и программа создаёт за тебя новую точку подключения со всеми настройками. В следующий раз можно даже её не запускать, а просто выбирать из списка подключение. Я вот на 7ке даже ленюсь сам вводить настройки, запустил один раз нокиевскую настройку и всё готово (смотрим скрин). Да только у тех у кого возникла проблема по настройке не нокиё же.
Yaranga, мм, и оператора выбирать не пришлось говоришь? Убунту сама оператору позвонила и всё чётко разрулила - узнала какой самый дешёвый пакет инета есть у оператора после чего подключила его и подключилась через нужную точку доступа чтоль ?  :)

7460
Я тут гулял по интернетам и случайно нашёл упоминание о некой Extremum версии NullDC от китайцев. Так вот эта версия из себя что-то интересное представляет или нет?

7461
Hard'n'Soft / Re: Програмирование на C++
« : 07 Март 2011, 18:37:18 »
HoRRoR,ну Array это и есть этот класс собственно, если убрать Array то компилятор говорит что я пытаюсь заменить оператор для непонятно чего. Инымы словами это
const &Array operator=(const Array &right)
должно позволить присваивать одному объекту класса Array значения другого объекта класса Array , при этом естественно просто будет сделана копия элементов из одного класса (того что будет справа от = (right) тому что будет слева от = ) в другой.

7462
Hard'n'Soft / Re: Програмирование на C++
« : 07 Март 2011, 16:36:44 »
Так, пробую дальше продвигаться по Дейтелу. Дальше у него тут перегрузка операторов, с перегрузкой ввода в поток и вывода из потока, которые были глобальными всё получилось, а вот дальше что-то я не так смотрю указываю когда операторы для  перегрузки находятся в классе. Вообще это пример из Дейтела, только у него он как всегда разбит на кучу файлов, я же вот попробовал переделать чтобы всё было в одном и что-то упустил наверное, подскажите пожалуйста что именно.
# include <iostream>
# include <iomanip>
# include <cstdlib>
using namespace std;

class Array
{
    friend istream &operator>>(istream &input, Array &a);
    friend ostream &operator<<(ostream &output, const Array &a);
public:

    Array (int arraySize=10)
    {
        size=(arraySize>0 ? arraySize : 10);
        ptr=new int[size];
        for (int i=0;i<size;i++)
         ptr[i]=0;
    }

    Array (const Array &arrayToCopy)
     :size (arrayToCopy.size)
    {
        ptr=new int[size];
        for (int i=0;i<size;i++)
         ptr[i]=arrayToCopy.ptr[i];
    }

    ~Array()
    {
        delete [] ptr;
    }

    int getSize() const
    {
        return size;
    }

    const &Array operator=(const Array &right)
    {
        if (&right!=this)
        {
            if (size!=right.size)
            {
                delete [] ptr;
                size=right.size;
                ptr=new int [size];
            }
            for (int i=0;i<size;i++)
             ptr[i]=right.ptr[i];
        }
        return *this;
    }

    bool operator==(const Array &right) const
    {
        if (size!=right.size)
         return false;
        for (int i=0;i<size;i++)
         if (ptr[i]!=right.ptr[i])
          return false;
        return true;
    }

    bool operator!=(const Array &right) const
    {
        return !(*this==right);
    }

    int &Array operator [](int subscript)
    {
        if (subscript<0 || subscript >=size)
        {
            cerr<<"\nError: Subscript "<<subscript
            <<" out of range"<<endl;
            exit (1);
        }
        return ptr[subscript];
    }

    int Array operator[](int subscript) const
    {
        if (subscript<0 || subscript>=size)
        {
            cerr<<"\nError: Subscript "<<subscript
            <<" out of range"<<endl;
            exit (1);
        }
        return ptr[subscript];
    };

private:
    int size;
    int *ptr;
};

istream &operator>>(istream &input, Array &a)
{
    for (int i=0;i<a.size;i++)
     input>>a.ptr[i];
    return input;
};

ostream &operator<<(ostream &output, const Array &a)
{
    int i;
    for (i=0;i<a.size;i++)
    {
        output<<setw(12)<<a.ptr[i];
        if ((i+1)%4==0)
         output<<endl;
    }
    if (i%4!=0)
     output<<endl;

    return output;
};

int main()
{
   Array intgers1(7);
   Array integers2;
   return 0;
}
Сорри комментариев не писал, но они я думаю не надо сейчас. Назначение класса - сделать свой массив с блекджеком и девушками с проверкой не был ли выход за границы массива и с возможностью печати/заполнения/сравнения массива int чисел.
Ошибки компилятор выдаёт только в тех строчках где идёт объявление перегрузки операторов
const &Array operator=(const Array &right)
bool operator==(const Array &right) const
int &Array operator [](int subscript)
int Array operator[](int subscript) const
Я что-то не дописал / написал лишнее в этих строчках?

7463
Так а что у вас всё время эмулятор не котируется, это если бы вы писали "да вы не играли в Дум на реальной консоли и snes сейчас не эмулируется так что откуда вам знать что там в игре" то это ладно, а так всё ведь эмулируется и играется. Street Fighter, у тебя у самого snes хоть была, только честно?  :)

7464
Цитата: Vegas
Но на Ноклу не подходит, пробовал (оператор другой)
Плохо пробовал, хотя иногда сам ПК не любит простоту и хочет чтобы с Nokia/se/motorolla вместо *99# ввели *99***1#, но такое бывает редко.

7465
Дайджест / Re: Nintendo 3DS "уже взломали"
« : 07 Март 2011, 15:33:27 »
Цитата: Doctor Venkman
Сони через суд получила доступ к списку ИП адресов, которые заходили на geohot.com И теперь будут банить всех подряд, чей Ип совпадет.
:rofl: :rofl: :rofl: А можно ссылку на новость? Мне так, чисто посмеяться. Ну да тут хоть реальностью пахнет так как это вполне реально взять список ip адресов посетителей сайта и пользователей онлайн сервисов с ps3 и методом объединения ...  хотя стоп, зачем geohot'у было вести логи ip посетителей сайта? Что-то эта новость тоже больше похожа на пугалку чем на реальность. Может у геохота был форум где хранились ip тех кто отправляли сообщения, это ещё более вероятно... ну а вот в случае с 3DS невозможно же определить играл  ли кто в пиратку с R4 катриджа или нет, ну разве что если этот катридж во время обновления будет в консоли, но какой же идиот это допустит при апдейте консоли.

7466
Tails1997,ищи инфу по этому поводу на форуме секлуба если интересно.

7467
Дайджест / Re: Nintendo 3DS "уже взломали"
« : 07 Март 2011, 15:13:54 »
Более смешное заявление стоит поискать. Звучит как "Мухахаха, наш коварный план сработал, консоль знает что вы запускаете пиратку но не препятствует этому так как она ведёт лог всех запущенных пиратских игр и сколько времени вы в них играли (да-да, с точностью до секунды, бойтесь нинтендо!). И тут как только вы надумаете обновить прошу тут то вам и ... консоль сразу и отправит лог в суд, а сама при загрузке будет показывать "Х**" с 3д эффектом".
Неужели в ткие заявления и правда кто-то верит?

7468
Doctor Venkman,ну у них тоже кастрат, только "наша" по сути вообще полный кастрат ничего не умеющий. Основная проблема мобильной явы - низкая скорость обращения к ресурсам, за счёт того что она обращается не напрямую мы и получаем такую тормозную работу ява приложений. Потому то эмулятор gba на яве сейчас и не светит, в то время как на симбиан смартах такой эмулятор достигает полной скорости. Не так давно самсунг предложил добавлять возможность для разработчиков писать приложения с полным доступом к ресурсам (платформа называется bada, с её поддержкой есть пока только 1 телефон). Те: у нас получается не смартфон (по сути полноценной OS нет), но и с возможностью обращения к ресурсам почти напрямую, но пока она не сильно развита да и неизвестно будет ли дальше развиваться.
Такое вот лирическое отступление  :) Tails1997, в общем забей на это дело. Хотя для некоторых se затачивали вроде эмулятор smd (или это был nes, я уж не помню) сделанный по принципу эльфов для симнесов, но он работал только на нескольких стареньких моделях телефонов да и с установкой помню было не всё так просто + при установке можно было получить путёвку в сервис центр за перепрошивкой телефона. Но я сам в этом не сильно разбирался так как у меня se нет.

7469
Tails1997, готов поспорить что он не работает и что там пустышка.

7470
Цитата: Vegas
Мой оператор подключает к нету через номер *99# например.
Это не от оператора зависит, а от бренда. Например *99# это номер для nokia, se, motorolla.
Для самсунгов это вроде *99*1**1#

Страницы: Назад 1 ... 245 246 247 248 [249] 250 251 252 253 ... 431 Далее