[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.2172 Reply
File: fdda18e4d238c0_full.jpg
Jpg, 157.24 KB, 515×640 - Click the image to expand
edit Find source with google Find source with iqdb
fdda18e4d238c0_full.jpg
дорогой /s/!

это снова тян с классами.

я начала читать про классы дальше и решила обогатить свой класс с дробями полученными умениями:

#include <iostream.h>

int modul(int arg)
{
int result;
if (arg<0)
{result = -arg;}
return result;
}

class iich
{
public:
   int integer;
   int upper;
   int lower;
   iich operator+(const iich arg)const;
   iich operator-(const iich arg)const;
   void print();
};


iich
iich::operator +(const iich arg)const
{
   const a = upper;
   const b = lower;
   const c = arg.upper;
   const d = arg.lower;
   iich result;
   if (b != d)
   {result.upper = (ad)+(cb);
   result.lower = b*d;
   result.integer = integer+ arg.integer;}
else
   {result.integer = integer+ arg.integer;
   result.upper = a+c;}

   if (result.upper > result.lower)
   {result.integer = result.integer + (result.upper/result.lower);
   result.upper = result.upper%result.lower;}

   return result;
}

iich
iich::operator -(const iich arg)const
{
const a = upper;
   const b = lower;
   const c = arg.upper;
   const d = arg.lower;
   iich result;
if (b != d)
   {result.upper = (ad)-(cb);
   result.lower = b*d;
   result.integer = integer - arg.integer;}
else
   {result.integer = integer- arg.integer;
   result.upper = a-c;}

   if (result.upper < 0 && result.integer>0)
   {
   result.upper= result.upper +(modul(result.integer)*result.lower);
   result.integer=0;
   }

   if (modul(result.upper) > modul(result.lower) && result.upper <0)
   {result.integer = result.integer + (result.upper/result.lower);
   result.upper = result.upper%result.lower;}

   return result;
}


void main()
{
iich lain;
lain.integer = 0;
lain.upper = 3;
lain.lower = 5;

iich jude;
jude.integer = 0;
jude.upper = 4;
jude.integer = 6;

iich sample;
sample = lain - jude;

cout << sample.upper;


}


но даже пока на этой стадии при попытке вычитания он выдает мне какуюто большую цифру.

я опять делаю что то не так...
>> No.2173 Reply
ой, черт, я просто опечатку сделала, извините, ребят, теперь все работает.
>> No.2190 Reply
так и не хочет местный зой нормальную подсветку синтаксиса нам запиливать
>> No.2191 Reply
>>2190
http://pastebin.com/
можно ещё прилепить файл, но это не нормальная подсветка
>> No.2193 Reply
>>2191
Никому не нравится, просматривая данный не слишком эпичный раздел, постоянный открывать какие-то новые окна. То что есть пастбин не отменяет того, что Зой - лентяй или дурак, если подсветку не хочет запиливать сознательно.
>> No.2205 Reply
> iich operator+(const iich arg)const;
> (const iich arg)
лол

тян, а тян, зачем тебе программирование, ведь ты же тян

алсо фигурные скобачьки зело готично расставляешь
>> No.2275 Reply
File: 1238850236611.jpg
Jpg, 16.96 KB, 320×240
Your censorship settings forbid this file.
unrated
File: tp.jpg
Jpg, 9.51 KB, 317×99
edit Find source with google Find source with iqdb
tp.jpg

> int modul(int arg)
> {
> int result;
> if (arg<0)
> {result = -arg;}
> return result;
> }
>> No.2281 Reply
> iostream.h
> void main()
> modul
ах ты же нехороший человек.

>>2275
> module
ты тоже.


c:толстяк через говорит что писать так - слишком толсто.
>> No.2282 Reply
>>2281
Ты предлагаешь перегрузить определить оператор |х| ? разьве такой синтаксис в плюсах возможен?
>> No.2283 Reply
>>2282
"modul" - транслит, убого
"module" - модуль, но не математический, так что тоже не подходит
лат. "modulus" - на латыни, как и на транслите писать код не принято
"abs" (от англ. "absolute value") - абсолютная величина, то что нужно

мимо проходил
>> No.2286 Reply
>>2205
А почему - готично?
>> No.2288 Reply
>>2286
Как минимум потому что не единообразно.
http://en.wikipedia.org/wiki/Indent_style
>> No.2314 Reply
>>2286
Потому, что iich и так копируется. То, что ты сделаешь его константным почти ничего не изменит. Наверное надо было написать const iich &arg. Рекомендую пользоваться для передачи не изменяемых объектов константными ссылками, а для возвращения значений - указателями. Тогда будет сразу видно, что процедура меняет, а что нет. Например: mycomplicatedproc(tada, tadada, blah, &blahblahblah). И вообще ссылки - полезная вещь, чтобы сокращать всякие длинные выражения для доступа ко вложенным полям. Например: int &length = (*context)->pool.first_chunk->length;
>> No.2315 Reply
>> No.2316 Reply
>>2172
И вообще ты все делаешь не так. Если это класс, то он должен разделять интерфейс и реализации. То есть никакого доступа к полям, только через методы. Если методы встраиваемые, то это не уменьшает производительность, но дает возможность потом изменить внутренности класса, не меняя код который им пользуется. У класса должен быть конструктор, чтобы невозможно было создать его не инициализировав. Класс не должен полагаться на порядок вызова методов. Если класс содержит виртуальные методы, то его деструктор должен быть виртуальным. Операторы создают временные объекты. Если у тяжелого класса есть операторы, то они могут возвращать легкую обертку над классом, чтобы избежать затрат на вызов конструкторов копирования.
>> No.2317 Reply
>>2172
Ах, да. Если тебе нужны не классы, а структуры, то так и пиши struct. И операторы лучше делать глобальными, чтобы можно было вызвать не только myClassVar+1, но и 1+myClassVar.
>> No.2318 Reply
>>2281
iostream, потому что iostream.h давно устарело
int main(), потому что main может не принимать аргументов, но обязан возвращать int, алсо return 0 можно в main не писать, потому что по стандарту в этом случае возвращаяется 0(маразм).
Еще почитай про пространства имен, чтобы не писать в заголовочных файлах using namespace std;
>> No.2322 Reply
File: [WallpapersMania.nnm.ru]_vol49-004.jpg
Jpg, 867.59 KB, 1920×1440 - Click the image to expand
edit Find source with google Find source with iqdb
[WallpapersMania.nnm.ru]_vol49-004.jpg
> никакого доступа к полям, только через методы
ух ты!
> методы встраиваемые
что это?
> невозможно было создать его не инициализировав
где ты такого понабрался?
> И операторы лучше делать глобальными, чтобы можно было вызвать не только myClassVar+1, но и 1+myClassVar.
ГЛОБАЛЬНЫМИ, чтобы изменить порядок сложения?
> int main(), потому что main может не принимать аргументов, но обязан возвращать int
прыщепоебень
> return 0 можно в main не писать, потому что по стандарту в этом случае возвращаяется 0(маразм)
годы практики и ты больше не обращаешь внимания на ворнинги, да?
>> No.2357 Reply
>>2322
Так тослто, что даже толсто. Покормлю ссылками на стандарт
> годы практики и ты больше не обращаешь внимания на ворнинги, да?
Кто-то не читал 3.6.1, пункт 5
> прыщепоебень
Кто-то не читал 3.6.1, пункт 2
> где ты такого понабрался?
кто-не не читал 12.6.2 пункт 4, который отчетливо говорит, что члены не будут проинициализированы.
>> No.2358 Reply
>>2357
> члены не будут проинициализированы.
Sepples дает возможность выстрелить в ногу. Однако конструктор будет вызван.
>> No.2365 Reply
Просто удивительно, как еще находятся люди, которые продолжают жрать ето говно (я про C++)
>> No.2368 Reply
>>2365
...стремительно потек жир с экрана. Но анонимус, как всегда, не обратил внимания на эти жалкие попытки вывести его из себя. Пусть вякает, что с него взять? Тролль - не человек, и сегодня ему предстоит очень трудная добыча еды. У него уже полтора года каждая добыча еды была трудной, и теперь его зеленое тело растолстело настолько, что им можно было раздавить кучу банок сгущенки.
>> No.2371 Reply
>>2365
А в чем проблема то? Препроцессор перемешанный с остатками C, уродливым объектноориентированным расширением и подобием брейнфака для обобщенного и метапрограммирования. Отличное говно.
>> No.2384 Reply
просто оставлю это здесь - http://www.insidecpp.ru/notes/


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]