
01.06.2009, 09:47
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
С нами:
10562786
Репутация:
537
|
|
а где можно взять Ws2_32.lib, чтобы потестить прогу Spy2ex'a?
|
|
|

01.06.2009, 10:18
|
|
Новичок
Регистрация: 20.09.2008
Сообщений: 29
С нами:
9283783
Репутация:
13
|
|
Сообщение от Дикс
а где можно взять Ws2_32.lib, чтобы потестить прогу Spy2ex'a?
В Visual Studio 8 установи и просто подключи.
|
|
|

01.06.2009, 15:02
|
|
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,205
С нами:
10016425
Репутация:
1257
|
|
Переход из https://forum.antichat.ru/showpost.php?p=1302836&postcount=234
Гугл подсказал, что для динамической линковки нужно указать параметр -dynamic либо -rdynamic.
Размер не изменился, а rdynamic линкер вообще не узнал:
mingw32-g++.exe: unrecognized option `-rdynamic'
|
|
|

01.06.2009, 15:07
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами:
9017461
Репутация:
414
|
|
Для динамической линковки нужны .dll либы, которых видимо нету поэтому компилятор автоматически собирает статически
|
|
|

01.06.2009, 15:19
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
С нами:
10562786
Репутация:
537
|
|
есть класс с несколькими свойствами типа
int date;
int minute;
и тп
необходимо реализовать методы для инкремента/декремента этих свойств.
я знаю как перегрузить операторы самого класса, но как грамотно сделать методы для каждого свойства?
что-то типа
DateTime obj;
obj.date++;
obj.minute--;
так вообще можно сделать? или надо писать стопку методов, типа void hourInc(); void hourDec(); ...
|
|
|

01.06.2009, 15:24
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами:
10216668
Репутация:
930
|
|
DateTime obj;
obj.date++;
obj.minute--;
Если сделать поля public, то такой способ будет возможен
|
|
|

01.06.2009, 15:59
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
С нами:
10562786
Репутация:
537
|
|
Сообщение от Fata1ex
DateTime obj;
obj.date++;
obj.minute--;
Если сделать поля public, то такой способ будет возможен
как?? это я и хочу узнать
|
|
|

01.06.2009, 15:31
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами:
9017461
Репутация:
414
|
|
так вообще можно сделать? или надо писать стопку методов, типа void hourInc(); void hourDec(); ...
Можно реализовать два метода, один на инкримент и один на декримент, и передавать в них типа флага который показывал бы над чем надо сделать inc/dec, например:
Код:
void DataTime::IncDate(int& field)
{
switch(field)
{
case 0: date++; break;
case 1: minute++; break;
...
}
}
Для большего удобства имена полей можно задефайнить:
Код:
#define FIELD_DATE 0
#define FIELD_MIN 1
и т.д. И тогда вызывать obj.IncDate(FIELD_DATE);
А вообще дело вкуса, можешь и пачку методов написать на каждый атрибут класса)
Последний раз редактировалось razb; 01.06.2009 в 15:38..
|
|
|

01.06.2009, 16:01
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами:
10216668
Репутация:
930
|
|
Код:
class m {
public :
int a;
int b;
m() {a = 1; b = 1;}
};
int main () {
m ob;
ob.a++;
ob.b++;
cout << ob.a << " " << ob.b << endl;
return 0;
}
Вообще это небезопасно
|
|
|

01.06.2009, 16:05
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами:
9017461
Репутация:
414
|
|
Именно. Все атрибуты лучше хранить как protected или private, а доступ к ним предоставлять через соответствующие методы, тк открытость нарушает модель инкапсуляции и обьекты классов по большому счету ничем не отличаются от структур.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|