ySŇ˝}zC/C++ ..
168:ftHgĚźłľłń
10/03/23 23:24:45
ťĚřĚŔ×ÖŚÁÄÓĄ éĚH
169:ftHgĚźłľłń
10/03/24 23:16:15
gÝÝ^ĚfXgN^đžŚIÉÄŃoˇąĆÉČÁÄŕâčȢĚž夊H
170:ftHgĚźłľłń
10/03/24 23:30:51
â賢͸B
STLĚReiĚŕĹĘÉsíęÄéB
171:ftHgĚźłľłń
10/03/24 23:31:14
>>169
Ǥ˘¤\[XR[hđgßÎť¤ČéÁÄąĆH
172:ftHgĚźłľłń
10/03/24 23:32:57
>>169
placement newÉΡéfXgN^ÄŃoľČçKvžŻÇH
ťęČOH
173:ftHgĚźłľłń
10/03/24 23:44:31
>>167
Ǥŕš
ʢšË
templatežŻĹÄpťĹŤéČçťęÉzľ˝ąĆÍȢńĹˇŞŽSÉÍᄁšË
>>168
fromĆtoÇÁżŞćžÁŻEEEƢ¤ĆŤÉžŚĹŤéĆŠÁ˝čiąĚឯžĆ÷žŻÇŞŚéĆ\Öj
ĆÍĄÂftHgřĚwčŞ éŻÇĐĆÂžŻŠŞĹß˝˘Ć˘Á˝ĆŤÉgŚéŠČAĆ
void func(A a1 = A(1), A a2 = A(2)); // a2žŻwčľ˝˘ŻÇoȢ
void func(A1Is a1, A a2 = A(2))
{
func(a1.value, a2);
}
void func(A2Is a2, A a1 = A(1))
{
func(a1, a2.value);
}
func(A2Is(a)); // a2žŻwčĹŤé
ƢÁ˝´śĹgÝíšđSXNvgÉfŠšÄg¤´ś
áŚÎWindow𜏡éÖĹcreate_window(TitleIs("test"), WidthIs(w), HeightIs(h));ĆžÁ˝´śĹꞯßÄcčÍftHgđg¤ĆŠlŚçęé
174:ftHgĚźłľłń
10/03/25 00:21:25
>>173
ąńČĚĆŠ
URLŘݸ(codepad.org)
175:ftHgĚźłľłń
10/03/25 12:41:28
Ć éNXĚěĹ
ČşĚć¤É
T* hoge = new T;
hoge->~T;
*hoge = new(hoge) T;
hoge->~T;
delete hoge;
ńĚÝnewĹm۾ĝĚăÍplacement newđpľÄńmŰľ˝ĚćÉIuWFNg𜏾
ĹIIÉfXgN^ĹĚćđJúˇéAĆž¤ěđsÁÄĺävČĚž夊H
176:ftHgĚźłľłń
10/03/25 12:54:20
>>175
ĺävŠŕľęȢľAĺävśáȢŠŕľęȢB
{ÉťńČąĆđˇéKvŞ éĚŠćmFľÄAťĚKvŤđڎ
RgŞYŚçęĢęÎAâÁÄࢢŠŕľęȢB
177:ftHgĚźłľłń
10/03/25 12:57:28
>>175
fXgN^đQńAąĹÄńĹé
178:ftHgĚźłľłń
10/03/25 13:10:15
NXA𜏡ét@NgŞ ÁÄA
A *FactoryA::create(ArgX, ArgY, ArgZ, ...)
{
new A(ArgX, ArgY, ArgZ, ...);
}
ąĚć¤Č`ĹřđťĚÜÜnewÉfQ[gľÄ˘Üˇ
AŞĹčČçRXgN^ĚžŻI[o[[hđÍCšÉÇÁˇę΢˘ĚšŞA
Factory<A>Ěć¤Éev[gřĚęÉČéĆÍCšĹÍĹŤÜšń
ąĚčĚâčđńđˇéű@Í čܡŠH
179:ftHgĚźłľłń
10/03/25 13:17:03
>>177
deleteĚĆŤÉhogeÉľĚޟު¸ÄŞśÝˇéĆŤĚÝfXgN^ŞÄÎęéć¤HvˇéąĆÍoȢž夊
âÍčfźÉ1ń̲ĆÉnewĆdeleteđJčÔľ˝űŞÇłť¤ĹˇËA čŞĆ¤äŔ˘Üľ˝
180:ftHgĚźłľłń
10/03/25 13:34:25
void *v = ::operator new (sizeof(Hoge));
T *p = new (v) T;
p->~T();
operator delete (p, v);
p = new (p) T;
p->~T();
operator delete (p, v);
::operator delete (v);
ťęÉľÄŕČńĹ
delete (v) p;
ÁįȢńžë¤Č
placement new/deleteÖWÍdlŞČńŠCżŤ˘
181:ftHgĚźłľłń
10/03/25 13:36:02
>>179
NŞ~ľ˘ĚÍ boost::optional ŠŕľęȢB
182:ftHgĚźłľłń
10/03/25 17:57:19
>>175
newÍťńČÉxȢB
vectorŞťęâÁÄéŠçB
vector<T> hoge(1);//placement newłęéB
hoge.resize(0); //fXgN^ŞÄÎęéB
hoge.resize(1);//placement newłęéB
//XR[vŠçoęÎčÉfXgN^ŞÄÎęéB
183:ftHgĚźłľłń
10/03/25 18:15:41
ńPOD^É
T *p = new (v) T;
ÁÄsĄ˘ńśáČŠÁ˝Hzu\śČńÄ ÜčgíńŠç¨á˘žÁ˝çˇÜń
184:ftHgĚźłľłń
10/03/25 18:25:03
PODśáČÄŕâčȢć
185:ftHgĚźłľłń
10/03/25 18:27:38
ŔŰplacement newĆĘĚnewÁÄÇĚ碏xżŞ¤ńH
NŠ_lmçȢH
186:ftHgĚźłľłń
10/03/25 18:44:42
PÉlŚÄ(placement new/deleteĚń*śmŰ/JúÉŠŠéÔ)ĚŞžŻŹČé
śŹjüľÜéęÍXQ[ŹČéŻÇAť¤ĹȢęÍŮÚłÓĄ
187:ftHgĚźłľłń
10/03/25 18:49:22
tÉžŚÎśŹjüľÜéČçČéńžćËH
¤ľAżĺÁĆŔŞľÄéB čŞĆ¤B
188:ftHgĚźłľłń
10/03/25 18:49:40
>>184
ęAǤ˘¤ĆŤsĄ˘ńžÁŻEEE
189:ftHgĚźłľłń
10/03/26 19:15:46
>>188
ACgĚâčŽç˘śáËH
190:ftHgĚźłľłń
10/03/26 20:10:02
ŕľÜ¸˘_Ş éĆľ˝ç
zńđoperator new()ĆzunewđgÁÄmŰľ˝ŕĚÉÎľÄ
delete[]đgŚČ˘AĆŠť¤˘¤_B
191:ftHgĚźłľłń
10/03/26 20:13:46
>>190
ťęÍnewĚŕîÍŻśžćË
192:ftHgĚźłľłń
10/03/26 20:28:29
C++0xĚunionĹńPOD`ŞgŚéć¤ÉČéĚÍplacement newđg¤˝ßČĚŠČH
ĄÜĹÍboost::variantĚć¤ČąĆđˇéÉÍzńĹĚććÁÄ˝ŻÇunionĹACgĚâčŕłČPÉgŚélÉČéĚŠH
193:ftHgĚźłľłń
10/03/26 20:37:45
D&EćOĹŞC++0xŞo˝ăĹoĹłęéćČ
194:ftHgĚźłľłń
10/03/26 20:50:24
>>191
unewZqvÍAoperator new()ĹĚćđmŰľ
RXgN^đÄŃoľÄúťˇéąĆŞÜÁÄéńśáČŠÁ˝ŠČB
KiÇńĹȢŠçmçńŻÇB
ŕľť¤ČçAťĚű@ĹmŰľ˝IuWFNgđdeleteĹđúˇéąĆŕłęť¤žŞB
KiÇńĹȢŠçmçńŻÇB
Ü˝AČĆŕ
p = new T();
p->~T();
new (p) T();
ľ˝ŕĚÉÎľÄÍ
delete p;
ÍĺävČńśáČŠÁ˝ŠČB
Ki(ry
195:ftHgĚźłľłń
10/03/26 20:54:41
>>194
˘â´ŞžÁÄéĚÍuzńnewvŕśÝľČ˘ËAƢ¤
196:ftHgĚźłľłń
10/03/26 20:55:40
ž˘űŞÜ¸˘Č
new A[]; ĆŠÍoéŻÇAÄŃošéĚÍftHgRXgN^ĚÝ
řtŤRXgN^ÍÄŃošČ˘
197:ftHgĚźłľłń
10/03/26 22:00:43
operator new/deleteĚI[o[[hĆŠplacement new/deleteÍ˝ÜÉg¤ŻÇťęĚzńĹÍęxŕgÁ˝Č˘´UM
Ƣ¤ŠRpCĹŽŞá¤ľAOObÄŕdlŞÇđçńľĹúß˝
198:ftHgĚźłľłń
10/03/26 22:54:00
AP[^ĚŠěÍđŞ[ȢĆĺĎČąĆÉČéŠç|˘ćË
199:ftHgĚźłľłń
10/03/26 22:56:32
VCžĆvfđi[ˇéŞžŻ]ŞÉmŰľÄA
ťĚĚAhXđÔˇńžÁŻ
200:ftHgĚźłľłń
10/03/26 22:57:02
AP[^ĚŠěČńÄ{ÉKvŠÇ¤Š
łń´ń᥾ĴĽIÉyŃÉČé׾B
201:ftHgĚźłľłń
10/03/26 23:07:45
Scoped AllocatorČçgÝÝĹŕgŚť¤Č\´
202:ftHgĚźłľłń
10/03/27 02:28:15
>>199
gccŕťńČžÁ˝Í¸
ĆPODĚĆŤÍvfĚćđm۾ȢƊ Á˝CŞˇé
203:ftHgĚźłľłń
10/03/27 06:41:37
PODśáȢŻÇfXgN^ŞČ˘ęÁÄǤČńžëH
mŠß˝ł˘â
204:ftHgĚźłľłń
10/03/27 06:51:18
placement newĚfXgN^ŞČ˘ęHNXŞŽIÉĚćđmۡé
¨śáČŻęÎfXgN^đÓ}IÉÄŃołČÄŕŔQÍČŠÁ˝Ćv¤
§łęȢŻÇ
205:ftHgĚźłľłń
10/03/27 06:55:36
ąńČ´śŠ
class A {
int i;
};
class B {
int* p;
public:
B() : p(new int[100]) {}
~B() { delete[] p; }
};
int main()
{
char c[1000];
A* ap = new (c) A;
// ap->~A(); // łÄŕŔQÍȢ
B* bp = new (c) B;
bp->~B(); // ȢĆ[Nˇé
}
206:ftHgĚźłľłń
10/03/27 07:29:32
˘âAť¤˘¤bśáČÄA
zńnewĹvfđi[ˇéĚÍfXgN^ÄÔ[v̽ߞŠç
inew¤ÍvfŞŞŠéĚĹÁÉKvÍȢ͸j
fXgN^ŞČŻęÎPODśáČÄŕzńnewĹvfŞmۡéKRŤÍȢćËAĆ
Ü mŰľÄŕŔQÍł˘ŠçŠŞĹzńnewđŔˇéęÍłđĹmۡę΢˘ńžŻÇ
ftHgĹÍǤČÁÄńĚŠČAĆ
207:ftHgĚźłľłń
10/03/27 08:25:35
>>206
śá ą¤˘¤Š
żČÝÉCodeGuard|ŻÄÝ˝Ş˝ĚG[ŕoČŠÁ˝ĚŰç
âčȢĆvíęé
class A {
int i;
};
int main()
{
char c[1000];
A* ap = new (c) A[100];
// ap->~A(); // ČÄŕŔQÍȢ
}
208:ftHgĚźłľłń
10/03/27 14:09:46
˘âAǤŠÄŕ>>203Şž˘˝˘ĚÍ
struct NonPod {
@int x;
@NonPod(): x(rand()) {}
@virtual int f() { return x; }
};
Ý˝˘ČŕĚđ
new NonPod[n];
ľ˝ÉAvfđL^ˇéĚćđmۡé̊ǤŠAžëB
209:ftHgĚźłľłń
10/03/27 14:11:50
>>208
vfÍL^ľČ˘
placement newĚzńĹĹmŰľ˝Ěćđ delete[] Ĺđúľć¤ĆˇéĆ
@ŠçŤ
210:ftHgĚźłľłń
10/03/27 14:14:01
žŠçA>>203ĚÓ}É placement new ÍÖWȢÁÄĚ
211:ftHgĚźłľłń
10/03/27 14:16:24
>>199,>>202-203̏꞊çČ
212:ftHgĚźłľłń
10/03/27 14:17:48
ŕ¤ĐĆÂB
ÇĚnŠŕžLš¸ÉuL^ľČ˘vČńÄž˘ŘéČB
v˘ÁŤčnËśžÁÄąĆÍFíŠÁÄéńžŠçB
213:ftHgĚźłľłń
10/03/27 14:19:30
>>212
@ŠçŤÁÄKi[É˘Ä éśáń
Ƣ¤ÍvfÍL^ľČ˘
214:ftHgĚźłľłń
10/03/27 14:33:33
ÍH
215:ftHgĚźłľłń
10/03/27 14:35:28
>>214
>>209
¨Ołńઍ˘Č
216:ftHgĚźłľłń
10/03/27 14:36:15
ÂÜčAŘŠçŤĆKi[ɢÄȢęÍ
uvfđK¸L^ˇévĆ˘Ä éÁÄ[ĚŠB
ťŕťŕ´Íu˘č`vĆ˘Ä éŕĚÍŠ˝oŚŞ éŞ
uŘŠçŤvČńÄ˘Ä éKiÍŠ˝ąĆł˘ŻÇČB
217:ftHgĚźłľłń
10/03/27 14:38:35
>>216
žŠçu˘č`ĚUé˘vundefined behavioržÁÂ[Ě
218:ftHgĚźłľłń
10/03/27 14:38:59
>>213 Ǥ˘¤üžć
219:ftHgĚźłľłń
10/03/27 14:39:27
ÂÜč
int * p = new int[n];
žĆAvfŞÇąÉŕL^łęȢAĆKiĚÇąŠÉ˘Ä éĚŠH
žŠç
delete p[] ĹÍČ delete p đľÄŕŠÄÓ`ŽěĹÍȢĆB
Ó[ńB
220:ftHgĚźłľłń
10/03/27 14:40:22
>>219
nŠ
placement newĚzńŞƞÁÄéžë[Ş
AzŠ
221:ftHgĚźłľłń
10/03/27 14:42:14
>>213>>216
˘č`ĚUé˘Ĺ é == vfđL^ľČ˘
ÁÄŠH
¨Ô¨ÉZńŢéÁÄKšH
222:ftHgĚźłľłń
10/03/27 14:44:24
vfđL^ľ˝ç˘č`ĚUé˘ÉČçȢžë¤Ş
223:ftHgĚźłľłń
10/03/27 14:45:14
ž˘˝˘placement newÍq[vĚćĆÍ˝ĚÖWŕȢžë
224:ftHgĚźłľłń
10/03/27 14:48:42
>>222-223
>>210-211đ10ńÇÝźľÄÝ˝çǤH
225:ftHgĚźłľłń
10/03/27 14:49:53
>>222
čÉßtŻéČć
226:ftHgĚźłľłń
10/03/27 14:54:43
m銢
´Í ÜĹŕplacement newĚzńĹÉ¢ÄbđľÄéńž
227:ftHgĚźłľłń
10/03/27 15:15:00
žŠçAÄß[ÍuĹÁŠç¸[[ÁĆvY˝ąĆľŠžÁÄË[ńžćB
Äß[užŻvŞYÄńžćB
˝Şu´Í ÜĹŕvžB
>>199yŃ>>202-203ɨ˘ÄA
uoperator new[]()ŞPODÍvfĚĚćđm۾ȢŞńPODÍmۡévbŞoÄé
Ĺ>>203Şuśá fXgN^Ěł˘ńPODČç(operator new[]ĚŽěÍ)ǤČÁĢéĚŠv
Ƣ¤^âđoľÄ˘éB
ČĚÉ>>204-205žĚ>>207žĚAŽŕřÉ__ŞíŠÁÄȢŤÝđľÄ˘éB
>>206Ĺuť¤śáČÄvĆwEłęĢéÉ੩íç¸AYÜčB
(žÁĆŞA>>197-206ĚŹęĚÉÍ´ĚŤÝÍęÂೢ)
ľŠŕAu˘č`ŽěĹ évĆÍuvfđL^ľČ˘ąĆĹ évƢ¤
źlÉÍđs\ČüÜĹżoľÄB
>>203ͨťçu(KiĹÍ˝ŕßçęĢȢžë¤Ş)
ÂXĚnĹÍǤČńžë¤HvƢ¤^âđoľ˝žŻČĚÉ
čÉuvfđL^ˇéąĆŞKiĹßçęĢévƢ¤ąĆÉľÄB
228:ftHgĚźłľłń
10/03/27 15:17:21
AŞĚuoperator new[]()ĚŽěvƢ¤ĚÍᤊB
new[]ZqŞuvfŞĚĚćđ˝ßÉoperator new()ÉvˇévŞłľ˘ŠČB
229:ftHgĚźłľłń
10/03/27 15:19:50
>>226
ĄÇÝÔľÄÝ˝ŞA>>206Şuť¤śáČÄvĆžÁĢéŕeĚ
uzńnewvđčÉuzunewvĆÇÝÖŚÄȢŠH
230:ftHgĚźłľłń
10/03/27 17:01:50
ftHgĹÍǤČÁÄńžëAÁÄńžŠç
žçŠÉplacement newĹÍȢžë
231:ftHgĚźłľłń
10/03/27 20:53:10
ŕž\ÍĚł˘lԪ¢¤ÁŠčŠČ]żŠÁ˝čˇéĆA
ťąçĚlÔđnnžÁÄéçłČŤá˘ŻČ˘Šç˝˘ÖńžB
232:ftHgĚźłľłń
10/03/27 22:35:11
đ\ÍŞŤčȢzĚűŞnɌȢŻÇ
233:ftHgĚźłľłń
10/03/27 22:38:41
ÇÁżŕÇÁżž
234:ftHgĚźłľłń
10/03/27 22:48:53
łĘÉvChžŻ˘Šç{É×
235:ftHgĚźłľłń
10/03/27 22:57:20
lđĎŚć¤ĆvÁ˝çÜ¸ŠŞŞĎíçÉáČçńć
ŠŞŞĎíç¸ÉźlđĎŚć¤ĆvÁÄŕASN|ŻÄŕ1~ŕĎíçȢĆvŚ
236:ftHgĚźłľłń
10/03/27 23:33:49
ČńЎ°[KÉŁčt˘ÄézŞéËB
237:ftHgĚźłľłń
10/03/27 23:48:13
Ƣ¤ŠŞŠÁÄȢzPlžŻžë
lĚš˘ÉˇéOÉüčđćŠëĆ
238:ftHgĚźłľłń
10/03/27 23:52:39
>>229ŞYojSđˢÄéČ
239:ftHgĚźłľłń
10/03/28 01:47:39
ˇÝÜšńD˜̿âČĚšŞ
longâintĚTCYŞ64bitâ32bitĹĎíéáÍćŠéĚšŞ
shortâlong longŞĎíéŔáÁÄ éĚž夊H
ć뾨袾ܡ
240:ftHgĚźłľłń
10/03/28 02:21:23
>>239
short Í -32,767 ` +32,767 đ\ťĹŤéąĆŞŰŘłęÄ˘é ¨ 16bit Čă
long long Í -9,223,372,036,854,775,807 ` +9,223,372,036,854,775,807 đ\ťĹŤéąĆŞŰŘłęÄ˘é ¨ 64bit Čă
ťęČOÍßçęĢȢŠçĎíéŠŕľęȢ
ŔáÍcc
short Ş4oCgČRpCđŠŞĹěę΢˘
241:ftHgĚźłľłń
10/03/28 03:30:55
>>203
RXgN^ERs[RXgN^EăüZqđč`ľ˝NXĹľÄÝ˝B
ČĆŕcodepadĚgccÍAfXgN^ĚLłĚÝŠÄéÝ˝˘B
URLŘݸ(codepad.org)
242:ftHgĚźłľłń
10/03/28 03:43:49
>>239
charĚTCYŞ9rbgĆŠ32rbgƢ¤ÂŤÍŔݡéĚĹA˝Ôń
shortâlong longŕťęČčÉĎČTCYÉČéĆv¤B
ęĘIČWindows/Linux/MacĚJÂŤĹÍA64rbg^[QbgĹ ë
¤Ć 16bit shortA64bit long long ľŠŠ˝ąĆȢËB
243:ftHgĚźłľłń
10/03/28 04:29:53
>>240
>>242
ąę͢čÜľ˝EEE
Ćŕ ęQlÉČčÜľ˝
čŞĆ¤˛´˘ÜˇD
244:ftHgĚźłľłń
10/03/28 08:30:09
˘éEEEĚŠH
stdint.h Ě int16_t, int64_t đgŚÎ˘˘Ć˘¤bĹÍȢ̊
245:ftHgĚźłľłń
10/03/28 15:29:14
C++ĹĚmŰÉ¢ijŚÄşł˘B
vfŞĎގézńĚňĚ×ĚĚćđcĺČmۡéƾܡB
f[^1[70]
f[^2[1]
f[^3[36]
f[^4[12]
E
E
E
ťľÄťęçđǡéAhXĚzńđěčܡB
f[^1ĚJnAhX
f[^2ĚJnAhX
f[^3ĚJnAhX
f[^4ĚJnAhX
E
E
E
ąĚĆŤAĚćmŰÍĐƸÂnewĆŠĹmŰľ˝Ů¤Ş˘˘Ěž夊H
ťęĆŕĺČĚćđŠŞĹmŰľAťĚÉÔđlßéć¤Éf[^đlßńŢ
ÇNXđŠěˇéŮ¤Ş˘˘Ěž夊H
OŇĚ٤ŞČPť¤ĹÍ éńšŞAC++ĚŽěĚmŻŞ ÜčČÄČşĚsŔŞ čܡB
EcĺȹܲÜĆĚćmۡéąĆĹ˝çŠĚתśľČ˘ŠH
EŕľŕKÉmŰoéóŤĚćŠÂŻÄmۡéęAÔŞÜÎçÉČÁÄ
@ŞfĐťłęA{Â\ČmŰĘćčŕmŰoéeĘŞČČÁÄľÜíȢŠH
f[^ĚćÍŠçĹŤSÂPĘĹmŰľApÉÉÁľ˝čAÇÁˇéƾܡB
Xľ¨č˘ľÜˇB
246:245
10/03/28 15:32:43
ȨAvectorČÇĚśÝÍmÁĢéĚšŞAťĚęAőľÄ˘éeĘđ´Ś˝ęA
ĚćĚÄmŰÉćÁÄf[^ĚAhXŞĎíÁľܢܡB
vOÍf[^ĚAhXđLŻľÄîńđâčćčˇéŞŞ˝˘ĚĹvectorÍlŚÄ˘ÜšńB
247:ftHgĚźłľłń
10/03/28 15:38:42
>>245
f[^ÍPĆĹnewˇęΊÜíȢBćÁŰÇ˝˘ęÍv[ČÇđg¤ŞA˝˘Ä˘ĚęÍnewĹŤčéB
ťąÖĚ|C^đvectorÉۡę΢˘B|C^žŻđۡéČçxN^[ĚLŁśĚâčÍÖWČČéB
vectorÉźÚ|C^đüęéĆdeleteŞĘ|ČĚĹshared_ptrđg¤ĚŞyžB
248:ftHgĚźłľłń
10/03/28 15:43:19
int main() {
int *p = new int;
cout << p << endl;
p = new int;
cout << p << endl;
delete p;
return 0;
}
ÍÔáÁÄܡŠH
ĹĚpÍ[NÉČéH
249:ftHgĚźłľłń
10/03/28 15:46:00
>>248
[NˇéB
QńnewĹdeletePńžŠçmŔB
250:ftHgĚźłľłń
10/03/28 15:49:13
>>245
f[^ĚvfÉÖˇévîńŞČ˘ąĆÉÍA
newĹ\ŞĆľŠžŚČ˘B
˝žAvfćč]ŞÉmŰľÄAÜÁ˝TCYĚ{ÉľŚéąĆĹA
ęĘIÉÍfĐťđ¸çˇąĆÍĹŤéĆv¤B
251:ftHgĚźłľłń
10/03/28 15:49:15
>>249
ŚX čŞĆ¤˛´˘ÜˇB
ŻśĎÍg˘ÜíľľČ˘ĚŞî{šŠH
252:ftHgĚźłľłń
10/03/28 15:58:57
>>251
¤ńB
g˘ÜíľÄŕęŘbgŞČ˘ÎŠčŠAÇÝɢľĹKťĚWQÉČéB
253:245
10/03/28 16:10:23
>>247
L爐´˘ÜˇB˝žâÍčsŔČĚÍAOSŠçŠÄvOŞĚąąŠçąąÜĹđgpľ˝˘Ć\ńinewĹmŰjˇéĆv¤ĚšŞA
ťĚ\ńľ˝ĚćĚf[^iąąŠçąąÜĹjđ۾ȢƢŻČ˘Ćv¤ĚšŞAĹŤSÂĚf[^đmۡéęA
OŇĹÍJniAhX{IšAhXjSÂŞĚđčLľÄľÜ˘AăŇžĆiJnAhX{IšAhXjĚęÂĚÝĹĎÝ
OҞƝꞯĹKPĘĚÁďľÄľÜíȢĚž夊H
>>250
L爐´˘ÜˇBČéŮÇAáŚÎvfđPOćŘčĹťčľÄťĚćŘčĹmۡéąĆÉćčA
ęxJúłęIJŻÉČÁ˝ĚćÉVľ˘f[^ŞˇÁŰčÍÜéÂ\ŤŞÜéƢ¤ąĆšËH
QlɾܡB
254:ftHgĚźłľłń
10/03/28 16:17:03
>>253
q[vĚÇĚćĚąĆHPOOĹŕPOKžľwindowsČçâčȢžë¤B
ťęćčŕq[vĚĹĺTCYđCÉľ˝Ů¤ŞÇȢŠČB
255:ftHgĚźłľłń
10/03/28 16:22:51
>>253
ć¸ÍđźÉěÁÄÝ˝ç?
ťę𮩵ÄÝęÎâč_ŕćčťčŐ˘žë¤ľfobKĹǤČÇľÄmŠđžçęé`XŕŚéB
nߊçŤ\đÚwľ˝çAfobOĚiKĹńiŕOiࢊČČéźB
256:ftHgĚźłľłń
10/03/28 16:34:33
f[^ÍăëÉÇÁˇéžŻČíŻH
ťęČçdequeđg¤Ć˘˘ćB
dequeÍăëÉÇÁˇéžŻČçĚÄzuÍNąçȢB
257:245
10/03/28 16:48:23
>>256
L爐´˘ÜˇB
f[^QĚԊ粢˝čŕs˘ÜˇŞAĘĚÓĹÍgŚéŠŕmęÜšńB
>>254
>>255
L爐´˘ÜˇB
ŔąIƢ¤ŠŠŞĚvOZpĚüăĚ×Ěg[jOđËÄČşĚdlÉľć¤Ć¨ŕ˘ÜˇB
Ev[ĹĺŤČĚćđmۡéB
@ąĚĚćđ´ŚéęÍiKIÉÇÁmۡéB
EvfÍTÂAPOÂAPTÂČÇĚPĘĹmۡéB
@ąęÍJúÉć貯ÉČÁ˝ĆąëɡÁŰčÍÜč⡡é˝ßB
@Ü˝v[gpÉćčźĚAvP[VÉćéWQŞČČč
@ćčÍÜčâˇČéB
258:ftHgĚźłľłń
10/03/28 17:05:40
vector<T*> data;
deque<T> pool;
queue<T*> recycle;
đpÓľÄA
Ef[^Íî{IÉpoolŠçćÁÄŤÄdataÉAhXđüęÄg¤
Eg˘IíÁ˝f[^ÍdataŠçíľÄrecycleÉAhXđüęé
ErecycleÉf[^ŞcÁÄéęÍpoolđłľÄrecycleŠçdataÉAhXđÚˇ
ąńČ´śĹ˘˘ńśáȢ
259:ftHgĚźłľłń
10/03/28 17:14:24
v[ÁÄÄpťˇéćčÚIĘÉŞĐËÁÄťĚÂÇĹKťľ˝űŞÇËH
260:ftHgĚźłľłń
10/03/28 17:15:09
>>257
Zpđüăłš˝˘Ćv¤ČçćÉąęđÇńŨŻB
WikipediaÚŘݸ
sŔâzđŕĆÉR[hđĄGťłšéĚÍDę˝ZpŇ̡éąĆĹÍȢB
261:ftHgĚźłľłń
10/03/28 17:18:00
Lď¤Ćž˘ČŞçA>255đłľÄÄÎŚéB
262:ftHgĚźłľłń
10/03/28 17:18:46
SPĘĹnew/deleteŞpÉÉsíę˝çťčáˇÜĹŕČptH[}Xżéí
263:ftHgĚźłľłń
10/03/28 23:09:23
ž˘˝˘A˝đwKľ˝ÄťńČŕńěë¤ĆvÁ˝ĚŠ
SĚI[_[žĆA]XćčX|XĚ٤ŞâčÉČ蝤žŞ
264:ftHgĚźłľłń
10/03/29 10:22:58
SPĘĹnew/deleteđpÉÉs¤vOÁÄ˝H
ÇąŠĚlCT[o[ĹŕľÁÄńĚŠČH
265:ftHgĚźłľłń
10/03/29 13:26:29
vRpCĎÝwb_[đg¤ŰAÉ
defineĹgŞĎťˇéev[gđüęÄŕ
âčȢž夊H
âÍčÇÝÝűÉćÁÄÍâč čH
266:ftHgĚźłľłń
10/03/29 19:04:37
newÉÎľÄdelete[]Íľżá˘ŻČ˘ŕĚH
ŕľÍ|C^Ěgđ˝çŠĚű@ĹPĚŠzńŠćʡéű@Íł˘ŕĚšŠH
267:ftHgĚźłľłń
10/03/29 19:10:31
RpCOÉm[}new/deleateđzńnew/deleteÉuˇŚéXNvgçšę΢˘B
268:ftHgĚźłľłń
10/03/29 19:10:40
>>266
PĚČçX}[g|C^đAzńČçSTLReiđgŚÎťńČSzÍvčÜšńB
Â[ŠAJavaScriptĚŤ˛ĚÄťÉČéŠç|CgćŞzńŠÇ¤ŠđťčˇéČńÄąĆÍlŚČ˘űŞ˘˘B
269:ftHgĚźłľłń
10/03/29 19:11:21
>>266
> newÉÎľÄdelete[]Íľżá˘ŻČ˘ŕĚH
žßB˘č`ĚŽěB@ŠçŤŞoéŠŕB
> ŕľÍ|C^Ěgđ˝çŠĚű@ĹPĚŠzńŠćʡéű@Íł˘ŕĚšŠH
ȢB
T* p = new T;
T* p = new T[10];
T a(0);
T* p = &a;
pŞąĚ3ÂĚÇęČĚŠˇçťčsÂ\B
270:ftHgĚźłľłń
10/03/29 19:14:08
> zńČçSTLReiđgŚÎ
boost::shared_arrayÁÄĚŕ éşćI
271:ftHgĚźłľłń
10/03/29 22:05:27
boostĚv[ÁÄZßÄĆ騍čČČÁ˝çÜ˝ZßÄĆé¨ÜĆßÄjüÁÄľÄéĚH
ĹăĚÜĆßÄjüđľČŠÁ˝çXĆHtľÄ˘ĚŠČH
272:ftHgĚźłľłń
10/03/29 22:10:18
make_sieveŕĚfree(sieve)ĹĘńŻÇ˝Ş´öH
URLŘݸ(kansai2channeler.hp.infoseek.co.jp)
ÂŤ
RpCFVS2008
OSFXP SP3
ťĚźFBCCžĆG[đfŠČ˘
ĄC⽯ÇIšÉprimesđJúľÄȢĚÍCɾȢĹEEE
273:ftHgĚźłľłń
10/03/29 22:40:24
>>272
Error 00001. 0x130610 (Thread 0x0EEC):
Access overrun: Attempt to access 4 byte(s) at 0x00B8F550+4000, that is at
offset 0+4000 in heap block 0x00B8F550 which is only 4001 bytes long.
| sieve1.c line 27:
| if(sieve==NULL) exit(1);
|
|> for(i=0;i<=limit;i++) sieve[i]=0;
| for(i=4;i<=limit;i+=2) sieve[i]=1;
| for(i=3;i<=limit/2;i+=2){
Call Tree:
0x0040123C(=sieve1.exe:0x01:00023C) sieve1.c#27
0x004011A3(=sieve1.exe:0x01:0001A3) sieve1.c#13
0x32AD8D9E(=CC32100MT.DLL:0x01:0D7D9E)
The memory block (0x00B8F550) [size: 4001 bytes] was allocated with malloc
| sieve1.c line 24:
| void make_sieve(int limit){
| int i,j,idx,cnt;
|> int *sieve=(int*)malloc(sizeof(int)*limit+1);
| if(sieve==NULL) exit(1);
|
Call Tree:
0x0040121A(=sieve1.exe:0x01:00021A) sieve1.c#24
0x004011A3(=sieve1.exe:0x01:0001A3) sieve1.c#13
0x32AD8D9E(=CC32100MT.DLL:0x01:0D7D9E)
ČńŠętG[oé
ÍÍOđANZXľÄéÝ˝˘žË
274:ftHgĚźłľłń
10/03/29 22:41:25
Í[ń
malloc(sizeof(int)*(limit+1));@ĚÔᢜáË[ĚH
275:ftHgĚźłľłń
10/03/29 22:47:02
int x = 0xXXXXXXXX;
unsigned int y = static_cast<unsigned int>(x);
ąĚLXgĹĹăĘrbgÍWĹK¸ŰłęܡŠH
276:ftHgĚźłľłń
10/03/29 22:59:13
>>273-274
ťęžIIwEłęéÜĹCĂŠČŠÁ˝´AzˇŹé
TNX
277:ftHgĚźłľłń
10/03/29 23:27:22
>>265
vRpCwb_[đCN[hˇéOÉAÓĄĚ éśđ˘ÄÍžßB
žŠçdefineÉćéĎXÍōȢB
278:ftHgĚźłľłń
10/03/29 23:49:30
>>265
áŚÎVCĹÍąńȧŔŞ éB
URLŘݸ(msdn.microsoft.com)
defineđĎXˇé˝ŃvRpCđâ蟚΢˘ńśáȢH
279:ftHgĚźłľłń
10/03/29 23:55:26
ĘlžŞĄXB
ÂÜčvRpCwb_đĄpÓľëAĆH
280:ftHgĚźłľłń
10/03/30 01:14:17
vRpCg¤ĚđâßéƢ¤ű@ŕ é
281:ftHgĚźłľłń
10/03/30 01:41:18
vWFNgĚtH_\ŹĹ˘˘âčűȢŠČ
boostđ}lľć¤ŠĆvÁ˝ŻÇ\[XŠÄŕboostŞÇ¤˘¤[ĹâÁÄéĚŠíŠçńŠÁ˝EEE
282:ftHgĚźłľłń
10/03/30 02:11:54
>>281 ĄŞÇńČ\ŹĹAťęĚ˝ŞCÉüçȢ̊q×ćB
283:ftHgĚźłľłń
10/03/30 15:53:11
WindowsĹCPUĚügđ枡éű@đłŚÄžł˘
284:ftHgĚźłľłń
10/03/30 16:20:33
T& GetT();
T const& GetT()
ąĚć¤ÉŇÝĘŢÖĚÔčlŞconstĆńconstĚI[o[[hÍÂ\ČĚž夊H
285:ftHgĚźłľłń
10/03/30 19:31:15
T& GetT();
T const& GetT() const;
ąęČçÂ\B
obj.GetT() ĆľÄ
objŞconstČçÎăŇŞA
ť¤ĹČŻęÎOŇŞÄÎęéB
286:ftHgĚźłľłń
10/03/30 21:07:04
>>277-278
âÍčâčŞ čť¤ĹˇËB
ŔŰgÁÄéĚÍBCBČńĹAVCđ^ľÄ
ępĚwb_[ěÁÄŻęÉČéć¤ÉľĆŤÜˇB
čŞĆ¤B
287:ftHgĚźłľłń
10/03/30 22:07:09
char (*a)[4] = new char[10][4];
ĚdeleteÍdelete(a)AťęĆŕdelete [] (a)?
ŠŞdelete [] (a)Ćv¤ńžŻÇAǤH
delete(a)žĆ[NÉČçȢĚH@ąęĹŕSÄJúłęéĚ
288:ftHgĚźłľłń
10/03/31 00:52:34
>>287
delete[]đg˘Üľĺ¤
new char[10][4]; Ě10ÍĎĹŕćAchar (*)[4]AÂÜčchar^Ě
vf4ĚzńÖĚ|C^đzńmۡéZqČĚĹAdeleteÍ
[]đtŻČ˘Ć[NľÜˇAƢ¤ćč˘č`ĚŽěš
289:ftHgĚźłľłń
10/03/31 17:26:59
C/C++É¢Äî{IČŠŕľęÜšńŞA|C^ĆzńÉ¢ĿⳚ峢B
int[] a;
int* p1 = a;
ÍíŠéĚšŞA
int* p2, p3;
p2 = a;
*p3 = a;
Ěᢪ˘ÜĐĆÂÍÁŤčđĹŤÜšńB
Ü˝AĚć¤Éľ˝A|C^ÍÇąĚAhXđwˇĚŠzŞÂŤÜšńd
p2 = &a;
*p3 = &a;
ćëľäwěĚŮǨ袢˝ľÜˇB
290:ftHgĚźłľłń
10/03/31 18:12:46
>>289
aŞint^ĚzńžĆľÄA
p2ÍaĚAhXđintĚ|C^ŠçANZXĹŤéć¤É
Rs[ľÄ˘éłíČLqB
*p3ÍAmŰŕłęĢȢǹŠĚĚćđwˇsčČ|C^ÉAaŠçćžĹŤéAhXlđ
ŤńŢésłČLqB
&aĚűÍA˝ŞnŞcŹľÄ˘éÇąŠĚAhXđťęźęRs[ľ˝č
słČŤÝđľć¤ĆľÄ˘éÁ̤Š
291:ftHgĚźłľłń
10/03/31 18:16:07
int *p2 ,p3
ÁÄint^Î߲ÝŔp2Ćint^Ďp3ĚmŰśáȢŠH
292:ftHgĚźłľłń
10/03/31 18:20:08
>>289
ťĚR[hÍA˘ÂŠRpCŞĘçČ˘ĆąëŞ éB
> int* p2, p3;
Ćąęŕp2ŞintÖĚ|C^Ap3ŞintÉČéC/C++ĚăŠB
p2 = a;
|C^ŞwˇAhXđĎŚéĚÍąęB
p2 = &a;
ąęÍ|C^ÖĚ|C^Ý˝˘ČąĆÉČéB
*p3Ěć¤ÉÔÚQĆZqđÂŻéĆA|C^ŞwˇAhXđQơéB
ÂÜčA*p3=aĚć¤ČăüÍA|C^ĚAhXđĎŚéĚĹÍČA|C^Şwˇ(Ď)ĚlđĎŚéÉČéB
293:ftHgĚźłľłń
10/03/31 18:50:32
>>289
î{IČĆOuŤŞ čA˝ÜÉëđľÄoŚÄélAÜ˝ÔáÁ˝ŕžđˇélŞ˘éĚĹ
OĚ˝ß¢ĹɢĨĆA C/C++ ÉÍAáŚÎ uintĚ|C^["^"v Ěć¤Č¨ÍśÝľČ˘BąędvB
ÜĹAuint ƾľíęéAÇąŠĚĚćđwˇ|C^v Ĺ ÁÄAąęÍ^śáȢB
ÂÜčÇÝűĆľÄAťĚáÍ uint*v Ě up2v ĹČAuintv Ě u*p2vB
ŔŰĚp@É¢ÄÍ >>292 ĚXđQĆľÄŕç¤ĆľÄAVkSžŻÇľÄ¨ĆA
ťŕťŕĎĚéžÍA
@int x;
Ć Á˝ĆŤAĹĚ int ÍiáŚÎŽŞ32bitžĆˇéĆjAuintƾľ¤ASoCgĚĚćv Ƣ¤ÓĄĹľŠČA
ÜžąĚuÔÉͨIÉÇąŠĚAhXÉÍ˝ŕmŰłęĢȢB@ťľÄÉ x ĆAĎźŞ˝ĆŤA
ÇąŠÉŞSoCgŞmŰłęAťęđ çíˇźOĆľÄ x ŞčÄçęĢéAƢ¤ŽŤÉČéB
ąęđĽÜŚÄA
@int *y;
ÍAĹĚ int Ĺ int ƾľ¤4oCgĚĚćƢ¤^ŞéžłęAťĚĚ * ÍAChJ[hĚ * ƽӥĹA
uÇąŠĚAhXv Ƣ¤Óvđ\ľÄ˘éB ÂÜč int * žB
ĹAľŠľąęžŻžĆŹÎÉťĚ㾌ȢĚĹAťĚĹąęŠĚÉźOđßĢéBąęŞ y B
ťńČóĹAąĚáĚęA^ĆľÄÍ ÜĹ intB@ťľÄĎĆľÄAťęÍ|C^ĆéžłęĢéÁÄÓĄĚLqÉČéŠçA
@int* z; @ĹÍČA@int *z;@ĹČŻęÎČçȢB@ąńČîbB
294:ftHgĚźłľłń
10/03/31 18:56:39
ŕ¤ęÂÇLľÄ¨ĆAÂÜč
int x; @ÍAÇąŠ¨IČi[ćŞčÄçę˝ŕĚĹAťęđwˇźOŞ x Ƣ¤ÓĄĹ čA
int *y;@ÍAÇąžŠíŠçȢiÇąĹࢢ = *ji[ćđڎŕĚĹAťęđwˇźOŞ y ÁÄB
ťľÄÇżçŠŕ^ĆľÄÍ int B@EEEÁÄA
ĹŕŔŰÉÍ int Ě|C^[^@Ý˝˘ÉľŚČ˘ĆsÖČĚĹAÜéĹ^Ěć¤ÉUÁÄ͢éńžŻÇBLXgĆŠB
295:ftHgĚźłľłń
10/03/31 18:58:08
dlÉpointer typeÍočܡŞB
296:ftHgĚźłľłń
10/03/31 19:02:50
ŠEľÄé
297:ftHgĚźłľłń
10/03/31 19:03:07
C++ĹÍ
int[] a;
\LOKÉČÁ˝ńž
ąęÍintzńđwˇ|C^ ađ\ˇĚH
ÜłŠQĆśáȢćË
298:ftHgĚźłľłń
10/03/31 19:05:23
JavaL˘Č
299:ftHgĚźłľłń
10/03/31 19:07:03
ÇąŠĚXĹu|C^vĆu|C^Şwˇćvđuó Ěn}vĆuó vĹđŕľÄ˘éĚđv˘oľ˝B
int x; // uint^Ěó v
int* y; // uint^Ěó vĚn}
y = &x; // &ĹxĚn}đćžľÄyÉăü
*y = 10; // n}Ĺ éyŞwˇó ÖĚăü
300:ftHgĚźłľłń
10/03/31 19:25:24
>>293 ^Şł˘ÁÄfžľżá¤ĚÍ ęžŻÇAĺĚž˘˝˘ąĆÍÁÄéB
˝X^ĚA˝X@ÁÄL@ĹA˝XĎźĚűđCüˇéEEEáŚÎ|C^đ çíˇ*âzńđ\ˇ[5] Ěć¤ČŕĚÍA
ČńÄžÁ˝ç˘˘ĚŠČEEE@^Ě鞪2i\ŚÉČÁÄéć¤ČC[WŨŚę΢˘ńśáȢŠČB
˝žJavaâC#Ěć¤ČžęĚęÍAťĚÓˇÁŤčÜĆßÄSŻść¤Č^Ćľżá¤XüŞ éŠçA
ťÁżĆŹŻˇéĆŹˇéÂ\ŤÍ éć¤ČCŞˇé
301:ftHgĚźłľłń
10/03/31 23:11:53
>>288
čŞĆ¤˛´˘ÜˇBâÁĎ蝤šćËB
>vf4ĚzńÖĚ|C^đzńmۡéZqČĚĹ
ZqÍÇęđžÁĢéńšŠH
302:ftHgĚźłľłń
10/04/01 00:09:46
>>301
unewvZq
303:ftHgĚźłľłń
10/04/01 01:26:50
>293
^É¢ÄÔáÁÄéćB
C/C++ĹÍA éŻĘqĚ^ÍAťĚ鞊çŻĘqđȢ˝ŕĚĆč`łęĢéB
žŠçČşĚć¤ÉČéB
int i;@@=> iĚ^Íint
int *p; => pĚ^Íint*
int a[10]; =>aĚ^Íint[10]
ĆĎĚéž(ŠÂč`)É¢ÄĚŕžŕëčBč`łę˝_ĹÍmŰłęéB
éžĚŕžŕoLÚˇŹéBČşůłĹđ°éB
@int x;
uintƾľ¤Ěćv ŞmŰłęéBautoĎČçAlÍS~B
@int *y;
uint*ƾľ¤AĚćv ŞmŰłęéBautoĎČçAlÍS~BÂÜčoLÚČĆąëđwľÄ˘éB
304:ftHgĚźłľłń
10/04/01 13:25:00
éNXđŔˇé˝ßžŻÉg¤wpNXŞ Á˝ĆľÄAĘÉlŚéĆ
namespace{ class HelperClass {...}; }
đŔľ˝˘NXĚ\[XĚŞçÖńÉĆv¤ńžŻÇAąęđt@CŞľ˝˘ęǤˇę΢˘žë¤Š
305:ftHgĚźłľłń
10/04/01 13:46:09
>>304 namespace detail
306:ftHgĚźłľłń
10/04/01 14:39:16
WinAPIĚRectangleÁÄright-left<=0ĚęÁĢč`H
307:ftHgĚźłľłń
10/04/02 07:52:17
Rs
[^žęđ˝ŠoŚ˝Äáu¤¸ľÂÂŕAęŕĽÝošÄ˘Č˘SŇšB
âÁĎčCŠČĆv˘AąąÉĢܡBĄÍÁÉě轢ŕ̪ȢńšŞA
vOŞŻéć¤ÉČÁ˝çâ轢ąĆÍňR 蝤šB
×Ě˝ßÉAPOŞç˘Ĺoť¤ČűKâčđoľÄęÜšńŠH
`x[VŞ Şčť¤ĹˇB
308:ftHgĚźłľłń
10/04/02 08:09:37
TopCoderĹŕâę
é˘ÍICPCĚßâTľoľÄâę
309:ftHgĚźłľłń
10/04/02 08:17:07
SŇŞ˘ŤČčťęÍǤŠĆv¤
1-nÜĹŤˇvO
śńđtɡévO
DŤČ٤đǤź
310:ftHgĚźłľłń
10/04/02 08:28:27
>>308
URLŘݸ(www.acm-japan.org)
ąńČâšËB
˝ľŠÉĘť¤ĹˇËB
âÁ˝çYíľÄ˘˝žŻÜˇŠH
311:ftHgĚźłľłń
10/04/02 12:05:24
class Foo{
Hoge* hoge
}
ąĚhogeÉ˝ÔIÉvf𽚽˘ĚšŞ
template𩤩ARXgN^ÉvfđľÄ˘łšéŠÇżçŞć˘Ĺľĺ¤ŠH
312:ftHgĚźłľłń
10/04/02 12:25:24
>>311
|C^ÍX}|Éľ˝Ů¤Ş˘˘
templatežÁ˝çhogeđ|C^ɡéKvŞł˘ČB
313:ftHgĚźłľłń
10/04/02 15:00:21
ˇÝÜšńAlŚű̎𾽢ĚſⳚ峢B
ŠŞÍiAJava Ć C# đCÉJľÄ˘éŇČĚšŞAďĄĚÍÍĹ C/C++ đ^ĘÚÉ
g˘˝˘Ćv˘AąąľÎç¸ÁĆ×đąŻÄ˘ÜˇB
żâŕeÍAuC++ Ĺž¤NX"ź" ÍAC Ĺž¤\˘ĚĚ^OźĆŻś¨Śűޢ̊v@šB
ďĚIÉž¤ĆAC(/C++) Ě\˘ĚÉ¢ÄAťÝŠŞÍąĚć¤É¨ŚÄ˘ÜˇB
@struct { ŕe } ĎźA, ĎźBG ÍAťĚŕeđ\˘ĆľÄÁ˝ĄĚĚć¤ČĎĆľÄA鞾ĢéBżĺ¤ÇA
@int ĎźA, ĎźB;@ĹĚA^ź int ĚŞŞA{ ŕe } Ě`Ĺ\ťłęĢéć¤ČóÔB
@ťľÄŔŰĚL@ĆľÄÍAťęŞ\˘ĚĚéžĹ é𞌡é˝ßAstruct ĆĹɢÄRpCÉ`ŚÄ˘éB
@łçÉA ĆŹ̯ś\˘đÄxpľ˝˘iVľ˘Ďđg˘˝˘jęÉőŚA
@ąąÉęĹŻśŕeđڎ×Ě u^Oźv@đAąĆŕoéB@ťľÄťęÍA
@struct ^Oź { ŕe } ĎźA, ĎźB; ĆA éA
@struct ^Oź ĎźC;@Ěć¤ÉľÄČŐÉg¤ąĆŞoéB
@ĹAC++ ÉČÁÄŠçąĚÄx鞡éŰĚ struct ĚęśÍČŞĹŤéć¤ÉČÁ˝ĚĹA
@ÜéĹ Java â C# Ĺž¤NXźĚć¤ÉŠŚÄ˘éŻÇA@ŔÍąęÍłXÄÄŃoľĚ×ĚA^OźžÁ˝B
ťľÄAC++ ÉČÁÄĄxÍćčd|ŻĚgŁłę˝ class Şoęľ˝ŞAąĚĚ
@class źO { ŕe } Ďź;
É é "źO" ĚŞÍAăLđÉ é^OźĆŻlɨŚÄ¨˘Ä˘˘ńž夊AƢ¤ĹˇB
ć뾨袢˝ľÜˇB
314:313
10/04/02 15:02:41
ëđ𾍝¤Č\Lđľ˝ĚĹůłľÜˇ
~ŔÍąęÍłXÄÄŃoľĚ×ĚA^OźžÁ˝B
ŔÍąęÍłXÄx鞡éŰÉLqđČŞˇé×ĚA^OźžÁ˝B
315:ftHgĚźłľłń
10/04/02 15:25:13
>>313
´ŕťńČ´śÉđľÄ˝Bą¤˘¤LqŞoéóžŠçČ
class Foo {
@public:
@void bar() {
@@class { public: int add(int x, int y) { return x + y; } } calc;
@@int a = 1;
@@int b = 2;
@@printf("%d", calc.add(a, b));
@}
};
ľ§ÉŻśČĚŠAÉ¢ÄÍ đćçȢƊgł˘Ş
316:ftHgĚźłľłń
10/04/02 15:33:35
[lڎŹBS^žćB
int^Afloat^Astruct foo^Aclass bar^
int ÁÄĚÍgÝÝĚ^
class bigintƯΊŞĹbigintƢ¤^đč`ĹŤéB
int a = 0;
bigint b = 0;
317:313
10/04/02 15:47:49
>>315-316
X čŞĆ¤˛´˘ÜˇBťŕťŕCÉČÁ˝ŤÁŠŻŞAC/C++ ĹĚąĚ\śđŠ˝š˘ČĚšB
@class źO {
@@ŕe
@} Ď;
Java â C# ĹĚ´ožĆAąĚĘuÉ "Ď" ŞéĚŞđoÜšńĹľ˝B
ťľÄťęĹgŚéÁÄA˘Á˝˘RpCÍąęđǤđßľÄéĚH@Ć^âÉvÁ˝ŞŤÁŠŻĹľ˝B
ęA>>316 łńŞž¤ć¤ÉAuťęÍť¤˘¤^BS˝žĚ^žv ÍíŠéĚšŞA
ăLĚ_ĹAǤž¤Ó}ĹąĚć¤Č\śÉČÁĢéĚŠđĹŤ¸AťĚ×FX˛×˝A
C ĹĚ struct Ş >>313 É éć¤ČŕežĆmčAťęČçÎ C++ ĹŚ˝ class É¢ÄŕŻlČĚŠČĆv˘Üľ˝B
ăLĚ\śŠçAu˝žĚ^žv ĹÍBÉvÁÄľÜ¤Ş čAżâłšÄ¸ŤÜľ˝BˇÝÜšńB
318:ftHgĚźłľłń
10/04/02 15:57:04
CĆC++Ĺᢪ éŠçťĚeżŠČB
struct@xx@{@@...@}@;
typedef@struct@xx@xx;@//@C++ĹÍąęŞČŞĹŤéB
xx@v;
319:ftHgĚźłľłń
10/04/02 16:06:19
>>317
C++ĹÍstructĆclassÍŮĆńÇŻśÁÄĚÍmÁÄéH
á˘ÍoĚANZXwč𞌾ȢƍĚftHŞstructÍpublicAclassÍprivateÁÄžŻB
320:313
10/04/02 16:26:55
X čŞĆ¤˛´˘ÜˇB
>>318
typedef struct { ŕe } źO;
źO v;
ČçAťĚÜÜźOĚč`ÉČéĚĹíŠéĚšŞA
struct Ě^OźĆ class ĚNXźĆžíęĢéęĚźOÉ¢ÄAŻśŠÇ¤ŠŞCÉČÁ˝ĚšB
>>319
żâÉ੹Ģ˝žŤÜľ˝ŞA޾믜ŠÇ¤Šđm轊Á˝ĚšB
ĹÍĎČž˘űŠŕľęÜšńŞAŻśĆvÁĢ˘íŻĹˇËB
˝žAC++ ÉĎíÁÄu^OźvƢ¤ž˘\ľűÍA˝žĚCăŠçĚKV[ĆvŚÎ˘˘Ć˘¤´śĹľĺ¤ŠB
321:ftHgĚźłľłń
10/04/02 16:50:24
˝Ş^âČĚŠŞŠçČČÁ˝ŞAKiăĚb𾽢ČçťęÍTagƢ¤ąĆޢćB
˝žlŚűĆľÄÍ^źĹACĆĚݡŠçTagĆľÄĚŽŤđcľÄ˘éĆlŚÄć˘B
322:313
10/04/02 17:00:48
>>321
čŞĆ¤˛´˘ÜˇI
˝žlŚűĆľÄÍ^źĹACĆĚݡŠçTagĆľÄĚŽŤđcľÄ˘é
ąĚęžĹˇÁŤčľÜľ˝B
Ć >>315 łńĚ calc ĚsĆíšÄA>>319 łńĚž¤ uŮĆńÇŻśv ŕíšÄA
ˇÁŤčľÜľ˝B@ čŞĆ¤˛´˘Üľ˝B
323:ftHgĚźłľłń
10/04/02 17:53:27
ČşboostÉÍŽIíqtŤĚń¤LX}|ŞČ˘ĚH
324:ftHgĚźłľłń
10/04/02 22:32:56
>>323 ťęÍNŞÜžCuĚńÄđoľÄ˘Č˘ŠçśáȢŠËH
325:ftHgĚźłľłń
10/04/03 15:29:48
X}[g|C^đg¤ÉľëŠěˇéÉľë
ßĚ~ĎĆĚŽŤđŰÂĚŞĘ|žľęxg˘oˇĆĄă¸ÁĆçęéąĆÉČéľČ
WĹŔłęÄéČçĆŕŠA
˘çboostÝ˝˘ČLźČCuĆ͢ŚńWÉËśˇéĚÍżĺÁĆáa´ éČĆXv¤
326:ftHgĚźłľłń
10/04/03 16:49:37
>>325
> ńWÉËśˇéĚÍżĺÁĆáa´ éČĆXv¤
OCuŕAPIˇçgíȢĹ
WC/C++ĚÍÍžŻĹŠę˝LźČ\tgEFAÍ
´ÍęÂŕľçńĚžŞB
C/C++ĚŔEĹľĺťęÍB
327:ftHgĚźłľłń
10/04/03 19:02:31
>>326
t[[NÝ˝˘Čg˘űÉČÁżá¤ÁĹƜáȢH
328:ftHgĚźłľłń
10/04/04 02:34:35
oĎĚȢoÖžŻĚNXĚTCYÍ0Ĺć˘Ěž夊H
329:ftHgĚźłľłń
10/04/04 02:37:59
>>328
ť¤ĆÍŔçȢB
330:ftHgĚźłľłń
10/04/04 02:48:38
>>328
C++ĹÍ0ĹÍȢŞKiĹŰŘłęĢé
RđˇĆAhXđćé˝ßžĆ
331:ftHgĚźłľłń
10/04/04 10:28:12
˝ĚNXĚTCYŞOžĆvÁ˝ĚŠ
332:ftHgĚźłľłń
10/04/04 12:02:22
CĹÍóĚ\˘ĚĚTCYŞ0ÉČéŠçžë
C++ÍźzÖČÇ|C^ÉüęÄg¤g˘űŕ éĚĹ
(ŕÁĆŕvtableČÇĹłX0ĹÍȢŠŕľęȢŞ)óĚ
\˘ĚâNXĹŕ0ÉÍČçȢć¤ÉÝvłęĢé
333:ftHgĚźłľłń
10/04/04 12:25:49
>>328
> oĎĚȢoÖžŻĚNXĚTCYÍ0Ĺć˘Ěž夊H
ŢľëŮÚÔá˘Č0ÉÍČçȢąĆŞŰŘłęéB
áOÍEBOŞ˘˝ĚÝ
334:ftHgĚźłľłń
10/04/04 12:31:20
śá óĚ\˘ĚÍCĆC++ĹݡŤŞł˘ĚŠ
335:ftHgĚźłľłń
10/04/04 12:43:37
( ĽÍĽ)ÂVż ÖĽ`ßÄmÁ˝
EBO (Empty Base Optimization)
óĚîęNXĚĹKťB
oĎđęÂŕ˝Č˘AóĚNXAƢ¤ŕĚŞoéąĆŞ čܡB
ľŠľóĚNXĹ ÁÄŕAAhXÍęÓÉßČÄÍČçȢĚĹA
izeof( EmptyClass ) Í 0 ÉÍČčÜšńB
EmptyClass arr[100];
assert( &arr[0] != &arr[1] ); // AhXÍáÁÄÄ~ľ˘PĆĹg¤ÉÍ
ąĚłĘÍdűĚȢƹ뚪A áŚÎąĚóNXŠçźĚNXđhś
ˇéĆŤÍAEmptyClass ĚŞĚTCYÍ 0 ÉľÄAhśNXĚoĎĚ
ŞžŻđmۡéAƢ¤ĹKťŞÂ\šB C++ĚKiĹłęĢéąĚ
ĹKťĚąĆđAEmpty Base Optimization ĆÄŃܡB
336:ftHgĚźłľłń
10/04/04 12:43:45
>>334
sizeof(óĚ\˘Ě)Ş0ÉČéąĆŞCžęĚWKiĹŰŘłęĢ˝ŠÍ
LŻÉȢŻÇAŕľť¤ČçC++ĆݡŤŞł˘_ÉČéžë¤ËB
Ĺŕsizeof(óĚ\˘Ě)==0ÉËśľ˝\[XÁÄÇńČńžH
337:ftHgĚźłľłń
10/04/04 16:00:36
>>332
ISO C 6.2.6.1 p2
> Except for bit-fields, objects are composed of contiguous sequences of one or more bytes, ...
C ĹŕTCYÍ 0 ÉČçȢćB
338:336
10/04/04 16:14:04
>>337
Ů[B
śá ŢľëEBOŞÁáĹTCYŞ0ĆČčA
ťęČOÍWC/C++ĹÍK¸1 or more oCgÍŠŠéíŻžB@
čŞĆ¤B
339:ftHgĚźłľłń
10/04/05 00:47:17
struct hoge {};
struct hoge fuga[42];
Ĺ&fuga[0] < &fuga[1]ĹȢĆFXďçËB
340:ftHgĚźłľłń
10/04/05 14:34:38
class iface {...};
class impl_a : public iface {...};
impl_a a1, a2, a3(a1); // ok
a1 = a2; // ok
iface &i1 = a1, &i2 = a2; // ok
iface i3, i4(i1); // ng
i1 = i2; // ng
ifaceĚśŹRs[ăüđÖ~ľ˝ÜÜimpl_aĚśŹRs[ăüđ¡éAÄpŤĚ éCfBIÍ čܡŠH
protectedČśŹRs[ăüđifaceÉ˝šęÎdlÍ˝ˇĚĹˇŞąęÍÄpŤŞČ
boost::noncopyableĹÍimpl_aŕRs[ăüsÂÉČÁľܤĚĹđɢܚńĹľ˝
y[WĹVX\ŚXbhĚőŢXębčĚj
[X¨ÜŠšXgĽIvVđ\ŚÉÂÔľ2ch
4059úOÉXV/255 KB
S:undef