다음 코드의 실행 결과로 올바른 것은?

과목: C++

문제 번호: 3273

hard
다음 코드의 실행 결과로 올바른 것은?
#include <iostream>
using namespace std;

class Calculator {
private:
    int value;
public:
    Calculator(int v) {
        value = v;
    }
    
    void add(int num) {
        value += num;
    }
    
    int getValue() {
        return value;
    }
};

int main() {
    Calculator calc(5);
    calc.add(3);
    calc.add(2);
    cout << calc.getValue() << endl;
    return 0;
}
A. 5
B. 8
C. 10
D. 컴파일 에러

정답: C



⦁ 이 문제는 C++의 클래스, 생성자, 접근 제어자, 멤버 함수의 개념을 종합적으로 다룹니다

⦁ 코드 실행 과정:
1. Calculator calc(5); - 생성자를 통해 value가 5로 초기화됩니다
2. calc.add(3); - value에 3을 더해서 8이 됩니다
3. calc.add(2); - value에 2를 더해서 10이 됩니다
4. calc.getValue() - 최종 value 값인 10을 반환합니다

핵심 개념:
private 멤버는 클래스 외부에서 직접 접근할 수 없습니다
public 멤버 함수를 통해서만 private 멤버에 접근 가능합니다
⦁ 생성자는 객체가 생성될 때 자동으로 호출되어 초기화를 담당합니다
⦁ 이러한 캡슐화가 객체지향 프로그래밍의 핵심 원리 중 하나입니다

💡 학습 팁

이 문제를 포함한 C++ 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.