wypisywanie tekstu czyli pytanie o cout

0

witam
Kontynuuje powtórkę dotycząca klas itp. i mam pewne pytanie:

#include <iostream>
#include <string> 
using namespace std;

template <class t1, class t2, class t3>
class tercet
{
      private:
              string nazwa; 
              t1     a; 
              t2     b; 
              t3     c; 
      public:
             tercet(string pierwszy, t1 drugi, t2 trzeci, t3 czwarty):nazwa(pierwszy),a(drugi),b(trzeci),c(czwarty)
             {}
             void wypisz();   
                          


};   
template <class t1, class t2, class t3>
void  tercet<t1,t2,t3>::wypisz()
             {
                  cout<<"to ja!"<<endl; 
                  cout<<"nazwa"<<nazwa; 
                  cout<<"drugi"<<t1  ; 
                  
             }     
int main()
{
    tercet<int,double,string> mieszkanka("mieszarka",10,3.14,"kowalski"); 
    tercet<char,char,char>    literki("litery",'a','b','c'); 
    mieszkanka.wypisz(); 
    literki.wypisz(); 
    
    
    
    
    
}

Takie coś jest poprawne:

cout<<"nazwa"<<nazwa;

ale już takie coś nie:

cout<<"drugi"<<t1  ;

dlaczego? Pojawia mi się błąd: expected primary-expession

z góry thx

0

Dlatego, bo t1 to typ, a nie obiekt jakiegoś typu.

0

bo powinno być

cout<<a;

zresztą przyjrzyj się co zadeklarowałeś:

      private:
              t1     a;

1 użytkowników online, w tym zalogowanych: 0, gości: 1