Gå til innhold

struct kan noen forklare


Anbefalte innlegg

Videoannonse
Annonse

Det er nesten det samme som class. Forskjellen er at i motsetning til class er alle medlemmer public med mindre du spesifiserer noe annet:

 

struct MyStruct
{
   int var; // er public
};

class MyClass
{
   int var; // er private
};

 

Vi bruker som regel structs til enkle datacontainere som ikke har metoder i seg (og et par andre tilfeller du ikke skal bekymre deg for enda). Men det er strengt tatt ikke noe i veien for å lage metoder i en struct hvis du ønsker det.

Endret av kjetil7
Lenke til kommentar

Jeg tenkte på traits structer og enkle funksjonsobjekter. Her er et par eksempler.

 

Traits:

template <typename T>
struct remove_reference
{
  typedef T type;
};


template <typename T>
struct remove_reference<T&>
{
  typedef T type;
};

 

 

Et enkelt funksjonsobjekt:

struct delete_object
{
   template <class T>
   void operator()(const T* p)
   {
        delete p;
   }
};

// ...

std::vector<std::string*> vec;
vec.push_back(new std::string("en"));
vec.push_back(new std::string("to"));
vec.push_back(new std::string("tre"));
std::for_each(vec.begin(), vec.end(), delete_object());
vec.clear();

 

Tar forbehold om trykkleifer; har ikke testet koden i kompilator.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...