모두CBT

클래스 B 객체를 생성하면서 전달한 인자의 값을 상속을 이용하여 화면에… | [7급 국가직 소프트웨어공학] 23년 1회차 기출문제 상세 페이지

1[7급 국가직 소프트웨어공학] 23년 1회차
클래스 B 객체를 생성하면서 전달한 인자의 값을 상속을 이용하여 화면에 출력하기 위한 C++ 코드 중 오류가 있는 코드의 라인 번호만을 모두 고르면? (단, 밑줄 친 라인 번호의 코드 이외에는 오류가 없다)
라인 번호C++ 코드
1
#include<iostream>
2
using namespace std;
3
4
class A {
5
private:
6
  int size;
7
public:
8
  A(int size) { size = size; }; //오류 확인
9
  virtual void print() { cout << size; };
10
};
11
12
class B : public A {
13
public:
14
  B(int size) : A(size) { };
15
  void print() { cout << size; }; //오류 확인
16
};
17
18
int main() {
19
  A *b = new B(10);
20
  b.print(); //오류 확인
21
  return 0;
22
}
1
15
2
8, 15
3
8, 20
4
8, 15, 20
해설

밑줄 친 8행, 15행, 20행 모두 오류가 있다.

8행의 size = size는 매개변수를 자기 자신에 대입할 뿐 멤버 size는 초기화되지 않으므로 this->size = size처럼 써야 한다.

  • 15행: size는 A의 private 멤버라 파생 클래스 B에서 접근할 수 없어 컴파일 오류가 난다.
  • 20행: b는 포인터이므로 b.print()가 아니라 b->print()로 호출해야 한다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 소프트웨어공학] 23년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 소프트웨어공학 기출문제 암기장 전체 보기