[C++] Pointer
for (size_t i = 0; i < guide_samples_ptr_->get_num_samples(); i++) {
guide_samples_ptr_->noised_control_seq_samples_[i] += svgd_step_size_ * grad_log_posterior[i];
}
포인터 guide_samples_ptr_ 는 특정 객체를 가리키고 있다. 이 객체는 가이드 샘플을 담고 있는 데이터 구조로, 샘플의 제어 시퀀스와 그에 대한 정보를 저장하고 있다.
guide_samples_ptr_ 는 이 객체의 메모리 주소를 저장하고 있으므로 이를 이용해서 프로그램 내 어디서든지 해당 객체에 접근할 수 있다.
포인터를 통해 객체를 참조하면, 해당 객체의 데이터를 직접 수정할 수 있다.
위 코드에서 guide_samples_ptr_ 이 가리키는 객체의 noised_control_seq_samples_ 배열의 각 요소는 반복문을 통해 업데이트된다. 이 변경 사항은 객체에 직접 반영되며, 다른 곳에서 이 객체를 참조할 때도 동일한 수정된 값이 유지된다.
cpp & hpp
hpp 파일에서 변수를 선언하면 cpp 파일에서는 변수의 자료형을 명시하지 않아도 된다.
hpp에서 변수 초기화를 하면, cpp에서 따로 초기화를 하지 않아도 된다.
hpp에서는 선언만 하고 cpp의 생성자 함수에서 초기화하자.