기말고사 기출
1. Ok or Wrong
Determine for each of the following attribute-access-expressions whether it results in an Error or not
c++
class A {
public:
int x;
A *objARef;
private:
int y;
protected:
int z;
};
class B : public A {
public:
A objA;
};
class C {
public:
A objA;
A *objARef;
B objB;
};
| in class A | B | C | |
| x | |||
| y | |||
| z | |||
| objA.x | |||
| objA.y | |||
| objA.z | |||
| objARef→x | |||
| objARef→y | |||
| objARef→z | |||
| objB.x | |||
| objB.y | |||
| objB.z |
2. Class 만들기
private, public 요소 문장으로 주어주고 그에 대한 클래스 만드는 문제. getter, setter까지
ex)
(1)Class int number; char name[20]; Attriute 생성 (2)Default Constructor 초기화 (3)member function print 생성 후, name number 찍기 (4)main함수애서 DC로 instance 하나 생성 후 print 찍기
3. Virtual 함수
c++
#include <iostream>
class C1 {
public:
void funA() { std::cout << "C1 fun A" << std::endl; }
virtual void funB() { std::cout << "C1 fun B" << std::endl; }
};
class C2 : public C1 {
public:
void funA() { std::cout << "C2 fun A" << std::endl; }
virtual void funB() { std::cout << "C2 fun B" << std::endl; }
};
int main() {
C1* o1 = new C1();
C1* o2 = new C2();
C2* o3 = new C2();
o1->funA();
o1->funB();
o2->funA();
o2->funB();
o3->funA();
o3->funB();
}