ySŌ―}zC/C++ ..
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ÛÉÂĒÄģĶÄšģĒ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úģęÄēŊÉČÁ―ĖæÉ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ÂÉČÁÄĩÜĪĖÅðÉĒÜđņÅĩ―
341:ftHgĖžģĩģņ
10/04/05 17:54:44
ĐČA[}üÍûŪŠĮŋįČĖĐæūĩ―ĒĖÅ·ŠÅŦÜđņBŊķlŠíÉoÍģęÜ·B
ĮĪ·ęÎĒĒÅĩåĪĐH
ØčÖĶĐĖÍÅŦÄÜ·B
2kXPVista7AOSftHgĐOfficetŪĖIME
ØĐĖÍwindows 7 office2007IME VC++2008ExpressÅĩÄÜ·B
URLØÝļ(codepad.org)
342:ftHgĖžģĩģņ
10/04/05 20:30:55
>>340
ķŽ·įsÂÉĩ―ĒČįC^[tF[XNXÉ·éÆĐĐČH
ĮĒĖŠvĒÂĐČĒĖÅšÅTĩÄB
URLØÝļ(ja.wikibooks.org)
y[WÅVX\ĶXbhĖõÞXębčĖj
[XĻÜĐđXgĨIvVð\ĶÉÂÔĩ2ch
4059úOÉXV/255 KB
S:undef