0

I am new to C++ and have some query related to below code snippet

  1. How to initialize the members of struct trackcmdtime using "struct initialization list - AlertTrackingState() ?

    typedef struct trackcmdtime {
       uint64_t arrive_time_ms;
       uint64_t diff_ms;
    } TrackCmdTime;
    
    
    Class Port {
    
     Public:
     .........
    
     Private:
    
      struct AlertTrackingState {
        Mutex mutex;                            
    
        RejectAlertTrackingList list;  
        uint32_t list_count;
    
        uint64_t req_time_ms;
    
        TrackCmdTime track;    // **Quest-1**
    
        // Initializer
        AlertTrackingState() : mutex(), list(), list_count(0), req_time_ms(0) {}  
    
      } _alert_tracking_state;
    }
    
     // Constructor
     Port::Port() :
       _alert_tracking_state()
     {
       ........   
     }
    
Abhinav
  • 109
  • 8
  • 1
    *"What is the difference in behavior if I add `track()` and `track(0)`..."* The difference is that `track()` is value initialization. This is explained in any beginner [c++ book](https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) and various SO posts. For example, [What does int() do in C++?](https://stackoverflow.com/questions/17131911/what-does-int-do-in-c) – Jason Sep 15 '22 at 09:48
  • 1
    Also, one question per post. – Jason Sep 15 '22 at 09:49

0 Answers0