Methods that use constants in a class

1. Macro definition

#include <iostream>
#include <array>
#include <vector>
#define SIZE 100

template<class T>
class Object{
    
    
private:
     static 
     std::array<T,SIZE>data; 
public:
     Object(){
    
    
       
     }
};
int main(){
    
    
      Object<int>obj;
      return 1;
}

2. Global constants

#include <iostream>
#include <array>
#include <vector>
const int SIZE = 100;
template<class T>
class Object{
    
    
private: 
     std::array<T,SIZE>data;
public:
     Object(){
    
    
        std::cout<<data.size()<<std::endl;
     }

};
int main(){
    
    

      Object<int>obj;


      return 1;
}

3. Use static in the class

#include <iostream>
#include <array>
#include <vector>
template<class T>
class Object{
    
    
private: 
      static const int SIZE = 100;
      std::array<T,SIZE>data;
public:
     Object(){
    
    
        std::cout<<data.size()<<std::endl;
     }

};
int main(){
    
    

      Object<int>obj;
      return 1;
}

4. The use of enum class

#include <iostream>
#include <array>
#include <vector>
template<class T>
class Object{
    
    
private: 
      enum class NumSpace{
    
    
            SIZE = 100,
      };
      std::array<T,static_cast<int>(NumSpace::SIZE)>data;
public:
     Object(){
    
    
        std::cout<<data.size()<<std::endl;
     }

};
int main(){
    
    

      Object<int>obj;
      return 1;
}

Guess you like

Origin blog.csdn.net/qq_44741914/article/details/132170168