[C++ 문법] 객체 포인터 배열 할당

객체 포인터 배열 할당은 쉽게 클래스를 만드는데 N개 만큼 만든다는 거임

 

예제를 통해 배워보자 

Zombie* zombieHorde(int N, std::string name)
{
	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);
}
  • 객체 포인터 배열을 할당하고 싶을 때는 대괄호 안에 정수를 넣어주면 됨.

위의 코드는 Zombie 클래스의 객체 배열을 동적으로 할당하고, 각 객체의 이름을 설정하는 작업을 수행하는 부분이다.

  1. Zombie* horde = new Zombie[N];: Zombie 클래스의 객체 포인터 배열 horde를 동적으로 할당을 한다. N은 배열의 크기를 나타냅니다. 이렇게 하면 N개의 Zombie 객체가 메모리에 할당됨.
  2. for (int i = 0; i < N; i++) { ... }: 반복문을 사용하여 배열에 있는 각 Zombie 객체의 이름을 설정한다.
  3. horde[i].setName(name);: 배열 horde의 i번째 Zombie 객체에 이름을 설정합니다. setName 함수를 호출하여 name을 설정한다.

 Zombie 객체 배열을 생성하고 각 객체의 이름을 설정하여 각 객체를 초기화한다.

 

i번의 이름을 넣어주고 싶으면 밑 코드를 하면 된다.

Zombie* zombieHorde( int N, std::string name )
{
	Zombie *horde = new Zombie[N];
	std::stringstream	ss;

	for (int i = 0; i < N; i++)
	{
		ss.str(std::string());
		ss << i;
		horde[i].setName(name + ss.str()); 
	}
	return (horde);
}

'개발 지식 > C++' 카테고리의 다른 글

[C++ 문법] ifstream, ofstream  (0) 2023.12.01
erase, insert  (0) 2023.12.01
[C++ 문법] std::cout, cin, endl  (2) 2023.11.30
[C++ 문법] C++ 네임스페이스(namespace)  (0) 2023.11.30
[C++ 문법] C++ 컴파일  (2) 2023.11.30