42Seoul/CPP Module 01

ex01(객체 포인터 배열 할당)

재윤 2023. 12. 1. 13:25
반응형

main.cpp

#include "Zombie.hpp"

int	main(void)
{
	Zombie	*horde;

	horde = zombieHorde(5, "zombie");
	if (!horde)
		return (0);
	for (int i = 0; i < 5; i++)
		horde[i].announce();
	delete [] horde;
}

 

Zomebie.cpp

#include "Zombie.hpp"

Zombie::Zombie()
{
}

Zombie::Zombie(std::string name) : name(name)
{

}

Zombie::~Zombie()
{
	std::cout << this->name << " is dead" << std::endl;
}

void Zombie::announce(void)
{
	std::cout << this->name <<  " BraiiiiiiinnnzzzZ..." << std::endl;
}

void	Zombie::setName(std::string name)
{
	this->name = name;
}

 

객체 포인터 배열 할당을 해야되기 때문에 zomebieHorde를 만든다.

#include "Zombie.hpp"

Zombie* zombieHorde(int N, std::string name)
{
	if (N <= 0)
	{
		std::cout << "Please enter a positive value\\n";
		return (NULL);
	}
	Zombie* horde = new Zombie[N];

	for (int i = 0; i < N; i++)
	{
		std::cout << i;
		horde[i].setName(name); 
		std::cout << name << '\\n';
	}
	return (horde);
}
반응형

'42Seoul > CPP Module 01' 카테고리의 다른 글

ex05(함수 포인터 배열)  (0) 2023.12.02
ex04  (0) 2023.12.01
ex03  (0) 2023.12.01
ex02  (0) 2023.12.01
ex00  (0) 2023.12.01