Nem értem ezt a szintaktikát eltudnátok magyarázni?
template<int size =20, class T2 = CIntArray<size , 0> > class TestA {
};
A típusparamétereknek is lehet alapértelmezett értéke, és ők is lehetnek származtatott típusúak, ezt mutatja a következő példa:
template<int size =20, class T2 = CIntArray<size , 0> > class TestA {
};
Elégséges, ha így példányosítunk:
TestA<> test2;
Konklúzióként pedig csak annyit tudok mondani, hogy használjuk a sablonokat. Igaz, picit nehézkes a gondolatmenetük több kódot kell írni, viszont nagyon rugalmasak, és sok tekintetben megkönnyítik munkánkat.
---------------------------------
Ez a leírás erről de nem értem.
Ez azt jelenti,hogy a T2 típusa egyenlő lesz a CIntArray<size, 0> típussal?
CIntArray<size , 0> > itt mit jelent a balról jobbra levő harmadik kisebb nagyobb jel?
Már értem.
Most ez nem tiszta:
hogy ez miért nem fordul le.
//main.cpp
#include<iostream>
using std::cout;
using std::string;
typedef unsigned short ushort;
template<class T1 = int, class T2 = int> const T1 proba(const T1 = 1, const T2 = 1);
int main(){
cout << proba() ;
return 0;
}
template<class T1 = int, class T2 = int> const T1 proba(const T1 x, const T2 y)
{return x+y;}
Ezek a hibaüzenetek:
no matching function for call to 'proba()' Pedig létezik a proba metódus.
default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11
//main.cpp
#include<iostream>
using std::cout;
using std::string;
typedef unsigned short ushort;
template<class T1 = int, class T2 = int> const T1 proba(const T1 = 1, const T2 = 1);
int main(){
cout << proba() ;
return 0;
}
template<class T1, class T2> const T1 proba(const T1 x, const T2 y)
{return x+y;}
Mi a hibaüzenet? Csak nem az, hogy "default template arguments may not be used in function templates without -std=c++0x or -std=gnu++0x"
vagy hasonló?
Áruljátok még azt el hogy ez micsoda:
Amikor nem azt írom,hogy template<class T>
hanem template<T>
Mi a különbség közöttük?
Megvan, hiszen figyelmeztet, hogy melyik kapcsolót használd ahhoz, hogy leforduljon.
Az a szintaxis meg... az első egy template deklarálásánál használatos, a második meg a template példányosításánál, feltéve, hogy van egy T nevű típusod.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!