객체 포인터 배열 할당은 쉽게 클래스를 만드는데 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 클래스의 객체 배열을 동적으로 할당하고, 각 객체의 이름을 설정하는 작업을 수행하는 부분이다.
- Zombie* horde = new Zombie[N];: Zombie 클래스의 객체 포인터 배열 horde를 동적으로 할당을 한다. N은 배열의 크기를 나타냅니다. 이렇게 하면 N개의 Zombie 객체가 메모리에 할당됨.
- for (int i = 0; i < N; i++) { ... }: 반복문을 사용하여 배열에 있는 각 Zombie 객체의 이름을 설정한다.
- 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 |
