반응형
1. 객체를 캡슐화하는 목적?
객체의 구성요소들을 보호하기 위해서
2. 클래스와 객체에 관한 설명 중 틀린 것은?
답: 3번
클래스의 멤버들은 private으로 접근 지정하는 것이 바람직하다.
3. 다음 C++코드가 객체 지향 언어의 캡슐화를 달성하는지 설명해라
int acc;
int add(int x){
acc += x;
return acc;
}
class Circle{
public:
int radius;
double getArea();
};
위 코드에서
private:
int radius; 로 바꿔주고
double getArea();는 그대로
답 : 미달 땡
4. 다음 C++프로그램에 캡슐화가 부족한 부분을 수정해 캡슐화하라
int age;
void older(){
age++;
}
class Circle{
int radius;
public:
double getArea();
};
------------------------수정--------------------------
class Person(){
int age;
public :
void older(){
age++;
}
};
class Circle{
int radius;
public:
double getArea();
};
5. 다음 코드는 Circle 클래스의 선언부이다.틀린 부분을 수정하라.
class Circle{
int radius;
double getArea();
}
--------------------------------------------
class Circle{
int radius;
public :
double getArea();
}
6. 다음 코드는 Tower 클래스를 작성한 사례이다.틀린 부분을 수정하라.
class Tower{
int height = 20;
public:
Tower(){height=10; return;}
};
========================================
class Tower{
int height = 20;
public:
Tower(){
height=10;}
};
7. 다음 코드에서 틀린 부분을 수정하라. 수정한 것이다
class Building{
private:
int floor;
public:
Building();
Building(int s) { floor = s;}
};
int main(){
Building twin, star;
Building BlueHouse(5), JangMi(14);
}
8. 다음 코드는 Calendar 클래스의 선언부이다. year를 10으로 초기화하는 생성자와 year값을 리턴하는 getYear()를 구현하라.
class Calendar{
private :
int year;
public :
Calendar();
int getYear();
};
Calendar::Calendar(){year=10;}
int Calendar::getYear(){return year;}
9. 생성자에 대한 설명 중 틀린 것은?
2) 생성자는 오직 하나만 작성 가능하다.
10. 소멸자에 대한 설명 중 틀린 것은?
소멸자는 매개변수, 리턴 타입, 중복이 없다
11. 다음 프로그램에 대해 답하여라.
class House{
int numOfRooms;
int size;
public:
House(int n, int s);
};
void f(){
House(int n, int s);
};
House b(3,30), c(4,40);
int main(){
f();
House d(5,50);
}
House::House(int n,int s){
numOfRooms=n;
size=r
};
House::House(){
cout<<"방의 크기: " <<size<<endl;
aaacout<<"방의 개수: " <<numOfRooms<<endl;
}
객체의 소멸 순서와 생성 순서
: b 생성 -> c 생성 -> a 생성 -> a 소멸 -> d 생성 -> d 소멸 -> c 소멸 -> b 소멸
12. 다음 프로그램에서 객체 a,b,c가 생성되고 소멸되는 순서?
#include <iostream>
using namespace std;
class House{
int numOfRooms;
int size;
public:
House(int n, int s){ numOfRooms =n; size=s;}
void test(){
House a(1,10);
}
};
void f(){
House b(2,20);
b.test();
}
House c(3,30);
int main(){
f();
}
c생성-> b생성-> a생성-> a소멸 ->b소멸 -> c소멸
13. 다음 프로그램의 오류를 지적하고 수정하라.
class TV{
TV(){ channels = 256;}
public:
int channels;
TV(int a){ channels =a;}
};
int main(){
TV LG;
LG.channels=200;
TV Samsung(100);
}
위는 수정 전/ 아래는 수정 후
class TV{
public:
int channels;
TV(){channels = 256;}
TV(int a){channels = a;}
};
int main(){
TV LG;
LG.channels = 200;
LG.colors = 60000;
TV Samsung(100,50000);
}
14. 다음 프로그램의 오류를 지적하고 수정하라.
class TV{
int channels;
public:
int colors;
TV() { channels = 256;}
TV(int a, int b){channels = a; colors = b;}
};
int main(){
TV LG;
LG.channels=200;
LG.colors=60000;
TV Samsung(100,50000);
}
위가 수정 전/ 아래가 수정 후
class TV{
public:
int channels;
int colors;
TV() { channels = 256;}
TV(int a, int b){channels = a; colors = b;}
};
15. 다음 코드에서 자동 인라인 함수를 찾아라.
class TV{
int channels;
public :
TV() { channels = 256;}
TV(int a){channels = a;}
int getChannels()
};
inline int TV::getChannels(){return channels;}
인라인 함수는
TV()와 TV(int a) 두 가지다.
16.인라인 함수의 장단점을 설명한 것중 옳은 것은?
답 : 2번
17. 인라인 함수에 대해 잘못 설명한 것은?
인라인 함수는 작은 함수일 경우 효과적이다.
18. inline 선언은 강제가 아닌데, 다음 함수 중에서 컴파이러가 인라인으로 처리하기 적합한것은?
1번을 제외하면 다 인라인 적용하기 어렵다.
19. C++ 구조체(struct)에 대해 잘못 설명한 것은?
4번 c++구조체에서도 상속받을 수 있다
20. 다음 C++ 구조체를 동일한 의미를 가지는 클래스로 작성하라
struct Family{
int count;
char address[20];
public:
Family();
private:
char tel[11];
};
class Family{
private:
char tel[11];
public:
int count;
char address[20];
Family();
};
21. 다음 클래스를 구조체로 선언하라
class Universe{
char creator[10];
int size;
private :
char dateCreated[10];
public :
Universe();
};
Struct Universe{
public:
Universe();
private:
char creator[10];
int size;
dateCreated[10];
};
반응형
'교재 및 CS공부 > 명품C++Programming' 카테고리의 다른 글
[명품C++Programming] 4장 연습 문제 (0) | 2023.05.02 |
---|---|
[명품C++Programming] 3장 실습문제 (0) | 2023.04.21 |
[명품C++Programming] 3장 OpenChallenge : 지수 표현 클래스 만들기 (1) | 2023.04.19 |
댓글