다음 C++ 프로그램의 실행 결과로 옳은 것은?
#include <iostream>
using namespace std;
class Student {
public:
Student() : Student(0) {};
Student(int id) : _id(id) {
if (_id > 0) _cnt++;
};
static void print() { cout << _cnt; };
void printID() { cout << ++_id; };
private:
int _id;
static int _cnt;
};
int Student::_cnt = 0;
int main() {
Student A(2);
Student B;
Student C(4);
Student D(-5);
Student E;
Student::print();
E.printID();
return 0;
}정답 1번
클래스 내 정적 변수 _cnt는 _id가 0보다 클 때만 증가하며, printID()는 _id 값을 1 증가시킨 후 출력합니다. 1. Student A(2): _id=2, _cnt=1 2. Student B: _id=0, _cnt=1 3. Student C(4): _id=4, _cnt=2 4. Student D(-5): _id=-5, _cnt=2 5. Student E: _id=0, _cnt=2 Student::print() 실행 시 _cnt 값인 2가 출력되고, E.printID() 실행 시 E의 _id(0)에 1을 더한 1 이 출력되어 최종 결과는 21이 됩니다.
콘텐츠 정보
- 자료 유형
- 공개 기출
- 검수 상태
- 자동 검사 완료
- 해설 작성·검수
- 정처LAB 자동 검사
- 최종 검수
- 자동 검사 완료