c++ - Module 01 ex03~ex05

mijeong·2021년 4월 19일
0

42_seoul

목록 보기
3/3

Exercise 03 : Moar brainz!

turn-in directory : ex03/
files to turn in : Zombie.cpp, Zombie.hpp, ZombieHorde.cpp ZombieHorde.hpp, main.cpp
forbidden functions : none

이 전 과제에서 만든 Zombie class를 다시 사용하여 ZombieHorde class를 만들어라.

이 class는 integer N을 가지도록 만들어야 한다. 만들어질 때에 N개의 Zombie 객체를 할당해야한다, 무작위의 이름으로(이 전의 "random"과 같이), 그리고 그것들을 저장해야 한다. 그리고 각각의 포함된 좀비 객체들에 대해 announce()를 호출하는 announce()함수를 갖습니다.

너는 반드시 하나의 할당에서 Zombie 객체들을 모두 할당해야한다, 그리고 ZombieHorde가 파괴되었을 때에 해제해줘야한다.

평소와 같이 메인에 테스트를 제공하고 선택을 정당화하라.

접근

이번 과제는 배열할당과 배열할당해제에 대해서 공부하는 부분이라고 생각한다. 따라서 new[]와 delete[]에 대해서 공부해 보자.

공부할 것

공부

이 전에 공부했던 new와 delete와 다르게 new[]와 delete[]은 배열을 한번에 할당하고 해제할 수 있는 편리한 연산자이다.

Exercise 04: HI THIS IS BRAIN

turn-in directory : ex04/
files to turn in : ex04.cpp
forbidden functions : none

"HI THIS IS BRAIN"을 포함한 string을 가리키는 포인터 및 참조를 만드는 프로그램을 만들어 보자.

너는 포인터를 사용해서, 그리고 결국 참조자를 사용해서 보여줄 것이다.

접근

reference(참조자)에 대해서 공부해보자.

공부할 것

공부

참조자는 실제 값에 접근할 때 사용할 수 있다. 함수내에 변수를 전달할 때에는 값복사가 일어나서 그 값 자체를 바꾸어도 함수밖에서 전달한 변수 자체는 바꿀 수 없지만 참조자는 그 것이 가능하다!! 자세한 내용은 위의 링크를 참조하자.

Exercise 05: HI BRAIN THIS IS HUMAN

turn-in directory : ex05/
files to turn in : Brain.cpp, Brain.hpp, Human.cpp, Human.hpp, main.cpp
forbidden functions : none

Brain class를 만들어라, brain에 적합한 무엇이든 넣어라. 이 것은 identify()함수를 가지고 있다, 이 함수는 0x가 앞에 붙어있고 16진법으로 이루어진 brain의 메모리 주소를 string으로 반환한다. (예를 들어, "0x194F87EA").

그런 다음 동일한 수명을 가진 const Brain 속성을 갖는 Human 클래스를 만들어라. 이것도 identify() 함수를 가지고 있다, 이 함수는 이 class의 Brain의 identify() 함수를 부르고 그 것의 결과를 리턴한다.

이제 이 코드가 두 개의 동일한 주소를 컴파일하고 표시하도록 만들어라:

int main()
{
Human bob;
std::cout << bob.identify() << std::endl;
std::cout << bob.getBrain().identify() << std::endl;
}

이 코드는 너의 main으로 제출되어야 한다. 그리고 동작하게 하기 위하여 Human 혹은 Brain class가 잘 정의되어야 한다.

접근

string stream에 대해서 공부해 보자. hyeonski가 말해줘서 바로 알아버림!!

공부할 것

공부

이 문제에서 요구하는 모든 것을 해결할 수 있는 함수 sstream!!!!
const로 지정된 클래스는 메서드를 사용할 때에 class의 멤버변수를 건들면 안되기 때문에 메서드 함수 뒤에 const를 붙여 class멤버변수를 바꾸지 못하게 해야한다. 안그럼 컴파일 에러가 뜬다!!

profile
해위~!

0개의 댓글