Avatar billede krismort Nybegynder
28. februar 2005 - 10:30 Der er 2 kommentarer

arv fra template argument

Hvis man laver en template klasse alà :

template <class T>
class C : public T {
};

hvilket typer af problemer kan løses med dette ?
Altså, Kan det overhoved bruges til noget smart ?
Avatar billede arne_v Ekspert
28. februar 2005 - 11:36 #1
Jeg har aldrig set den brugt.

Måske kunne man bruge det til at tilføje noget funktionalitet til mange
forskellige klasser.

Ikke særligt pænt OOP. Men nærmest AOP.
Avatar billede bertelbrander Novice
07. marts 2005 - 23:21 #2
Man kunne bruge det hvis T i sig selv er en template class, f.ex:

#include <vector>
#include <iostream>
#include <assert.h>

template <class T>
class SafeVector : public T
{
public:
  T::reference operator [] (T::size_type n)
  {
      assert(n >= 0 && n < size());
      return T::operator [] (n);
  }
};

int main()
{
  SafeVector<std::vector<int> > MyVector;
  MyVector.push_back(12);
  MyVector.push_back(13);
  MyVector.push_back(14);
  for(int i = 0; i <= 3; i ++)
  {
      std::cout << MyVector[i] << std::endl;
  }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester