<div>아래는 soen에 있는 예제인데요</div> <div>static키워드를 붙여서 정적멤버 변수임을 선언했다는데요</div> <div>근데 제가 알기로는 private속성은 절대 고치지 말라고 선언한건데 Count클래스 바깥에서 <span style="font-size:9pt;line-height:1.5;">int Count::Num=0;문장으로 private속성의 Num의 값을 고쳤네요?</span></div> <div><span style="font-size:9pt;line-height:1.5;">이러면 private속성을 한 의미가 없지 안나요?</span></div> <div><span style="font-size:9pt;line-height:1.5;">그리고 static으로 정적멤버 변수를 </span><span style="font-size:9pt;line-height:1.5;">함수 바깥에서 고칠 수 있다면 </span><span style="font-size:9pt;line-height:1.5;">당연히 메인함수에서도 정적멤버 변수인 Num를 고칠 수 있을것 같은데 </span></div> <div><span style="font-size:9pt;line-height:1.5;">main함수에서는 어떻게 고칠 수 있는지 잘 모르겠네요..</span></div> <div><span style="font-size:9pt;line-height:1.5;">메인함수에서 정적멤버 변수를 고치려면 어떻게 해야 하는지 그리고 저렇게 private속성의 변수를 static키워드로 변수값을 변경가능하게 하면 public선언이나 마찬가지인데 왜 저렇게 변경 가능한 변수를 왜 그냥 public으로 선언하지 않고 굳이 번거롭게 private선언과 static키워드를 혼합해서 사용하는지 그 이유를 알고 싶네요.</span></div> <div><br></div> <div>#include <iostream></div> <div><br></div> <div>//int Num=0;</div> <div>class Count</div> <div>{</div> <div>private:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int Value;</div> <div>static int Num;</div> <div><br></div> <div>public:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Count()</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{Num++;}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>~Count()</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{Num--;}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>void OutNum()</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("현재 객체 개수=%d\n",Num);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>};</div> <div>int Count::Num=0;</div> <div>void main()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Num=20;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Count C,*pC;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>C.OutNum();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pC=new Count;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pC->OutNum();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>delete pC;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>C.OutNum();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("크기=%d\n",sizeof(C));</div> <div>}</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.