반응형
객체 포인터 배열 할당은 쉽게 클래스를 만드는데 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++ 동적 할당, 객체 포인터 할당, 레퍼런스' 카테고리의 다른 글
레퍼런스와 포인터 (0) | 2023.11.30 |
---|---|
C++의 동적할당 (0) | 2023.11.30 |