<div>#include<iostream></div> <div>#include<string> // <<</div> <div>using namespace std;</div> <div>class Student</div> <div>{</div> <div>public:</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>string name;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>int sNo;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>void Print();</div> <div>private:</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>Student(const string& name_arg, int stdNumber);</div> <div>public:</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>static int studentNumber;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>static Student* CreateStudent(const string& name_arg);<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div>};</div> <div>int Student::studentNumber = 0;</div> <div>// 정적 멤버 변수는 보통의 멤버변수와는 달리 별도로 크래스외부에서 정의해주어야 한다. 오직 하나만 생성되기 때문에 이렇게 별도로 정의.</div> <div>Student* Student::CreateStudent(const string& name_arg)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>Student* p = new Student(name_arg, studentNumber++);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>return p;</div> <div>}</div> <div>Student::Student(const string& name_arg, int stdNumber)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>name = name_arg;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>sNo = studentNumber;</div> <div>}</div> <div>void Student::Print()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>cout << "name = " << name << " sNo = " << sNo << endl;</div> <div>}</div> <div>int main()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>Student* p1, *p2, *p3;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>p1 = Student::CreateStudent("오유");</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>p2 = Student::CreateStudent("디씨");</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>p3 = Student::CreateStudent("웃대");</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>p1->Print();</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>p2->Print();</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>p3->Print();</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>딜리트(영어로하면 글쓰기가 안되서..) p1, p2, p3;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>p1 = p2 = p3 = 0;</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>return 0;</div> <div><br /></div> <div>}</div> <div><br /></div> <div>생성자를 이용해서 객체를 정의해야하는데 생성자가 private라서</div> <div>정적 멤버함수 내에서 동적 할당을 해서 주소을 리턴하잖아요. 근데</div> <div> <div>static int studentNumber;</div> <div>이거는 인트타입 정적멤버변수 스튜던트넘버를 선언하고..</div> <div>static Student* CreateStudent(const string& name_arg);<span class="Apple-tab-span" style="white-space: pre"> </span></div></div> <div>이거는 Student* 형 멤버함수??? </div> <div>이게 뭔지 왜쓰는지 완전 모르겠네요</div> <div>제발 알려주세요ㅠㅠ</div> <div><br /></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.