저는 C++을 처음 접했지만 C에서 기본적인 메모리 할당 지식을 가지고 있습니다. 카드 번호와 클래스 Activity 객체 목록을 저장하는 클래스 Card를 작성하고 있습니다.개체를 초기화하고 다른 클래스에 저장해야 동적/정적으로 할당해야합니까?
class Card {
public:
Card();
~Card();
vector<Activity> activities;
int cardNo;
}
현재, 나는 다음과 같은 코드를 사용하여 작업 개체를 초기화 :
Activity a = Activity("a");
및 카드 객체에 정의 된 벡터에 밀어 넣습니다.
하지만 사람들은 Activity * a = 새로운 활동 ("a") 대신 (동적 할당?)을 사용하여 초기화하는 경향이 있고 이전에 선언 된 (정적으로 할당 된) 객체는 함수 선언시 해제됩니다. 그들은 끝났다.
그런 다음 이전과 같은 방법으로 활동 개체를 초기화했지만 "새 카드()"방법으로 카드를 초기화하면 카드 개체가 해제되기 전에 활동 개체가 할당 취소되었을 수 있습니까? "새로운 활동()"을 사용하여 카드에 저장된 객체를 초기화해야합니까?
"활동을하기 전에 일부 작업을 수행"한다는 것은 무엇을 의미합니까? 게다가 생성자에 정의 된 연산? –
@Eastenluis 예, 'Activity'에 대한 메소드 또는 무언가를 호출하기 전에 그것을 푸시하기 전에 생성하십시오. 'activites.push_back (Activity ("a"))'하면 분명히 할 수 없다. 'Activity a ("a")를 할 필요가 있습니다; a.some_method(); activities.push_back (a)' –