728x90
반응형
본 글은 "황기태"님의 [명품 C++ Programming]의 연습 문제 답을 공유하고자 작성되었으며, 필자가 직접 문제를 풀며 작성한 것이기에 오류가 있을 수 있습니다. 댓글로 알려주시면 반영하도록 하겠습니다.
시리즈 보기
[C++] 명품 C++ Programming 1장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 1장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 2장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 2장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 3장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 4장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 4장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 5장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 6장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 7장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 9장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 9장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 10장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 10장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 11장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 11장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 12장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 12장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 13장 연습 문제 풀이 (이론 문제)
💡
[정답] ①번
💡
[정답] ④번
💡
[정답]
class Sample {
friend SampleManager;
}
💡
[정답]
class Sample {
friend bool SampleManager::compare(Sample &a, Sample &b);
}
💡
[정답]
bool insValid(Student s) {
if(s.id > 0) return true; // 오류 발생
else return flase;
}
isValid() 함수에서 Student의 private 멤버에 접근하기 때문에 부적절한 접근이 되어 오류가 발생합니다. 적절한 접근이 되기 위해서는 isValid() 함수를 friend 함수로 작성해야합니다.
class Student {
int id;
public:
Student(int id) { this->id = id; }
friend bool isValid(Student s); // 프렌드 선언
}
💡
[정답]
void show(Student s, Professor p) {
cout << s.id << p.name;
}
show() 함수에서 Student와 Professor의 private 멤버에 접근하므로 컴파일 오류가 발생합니다. 적절한 접근이 되기 위해서는 show() 함수를 friend 함수로 작성해야합니다.
Class Student {
int id;
public:
Student(int id) { this->id = id; }
friend void show(Student s, Professor p);
}
Class Professor {
int name;
public:
Professor(string name) { this->name = name; }
friend void show(Student s, Professor p);
}
void show(Student s, Professor p) {
cout << s.id << p.name;
}
💡
[정답]
shopping() 함수 내에서 Food 클래스의 private 멤버인 price에 접근하여 컴파일 오류가 발생합니다. 마찬가지로 friend 함수로 선언해야합니다.
class Food {
int price;
string name;
public:
Food(string name, int price);
void buy();
friend void Person::shopping(Food food); // friend
};
class Person {
itn id;
public:
void shopping(Food food);
int get() {return id;}
};
void Person::shopping(Food food) {
if (food.price < 1000)
food.buy();
}
💡
[정답] ④번
💡
[정답]
💡
[정답]
friend 함수 선언이 필요하지 않습니다. isZero는 Sample 클래스의 public 멤버인 x에 접근합니다. private 멤버에 접근하는 것이 아니므로 friend 함수로 선언할 필요는 없습니다.
💡
[정답] 연산자 중복
💡
[정답]
치킨 + 양념 = 양념치킨
💡
[정답] ④번
💡
[정답] ④번
💡
[정답] ③번
💡
[정답] ③번
💡
[정답]
치환 연산자를 작성할 필요가 없습니다. Circle 클래스의 경우 포인터를 가진 멤버가 없어 두 객체가 비트 단위로 복사되는 객체 기본 치환 연산을 해도 문제가 발생하지 않습니다.
반응형
'대학교 > 명품 C++programming 문제' 카테고리의 다른 글
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (실습 문제) (0) | 2022.11.29 |
---|---|
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (이론 문제) (0) | 2022.11.25 |
[C++] 명품 C++ Programming 6장 연습 문제 풀이 (이론 문제) (0) | 2022.11.19 |
[C++] 명품 C++ Programming 5장 연습 문제 풀이 (이론 문제) (0) | 2022.11.13 |
[C++] 명품 C++ Programming 4장 연습 문제 풀이 (실습 문제) (0) | 2022.11.11 |