шаблон класса c ++ - PullRequest
       13

шаблон класса c ++

0 голосов
/ 16 января 2012

Я не могу найти проблему.Я пытаюсь использовать char в качестве параметра для шаблона класса:

#include <iostream>

using namespace std;

template <class Type1, class Type2> class myclass
{   
    Type1 i;
    Type2 j;
public:
    myclass(Type1 a, Type2 b) {i=a; j=b;}
    void show() { cout << i << ' ' << j << '\n'; }
};

void main()
{   
    myclass<int, double> ob1(10, 0.23);
    myclass<char, char *> ob2('X', Just show ");
    ob1.show();   
    ob2.show();
}

Ответы [ 2 ]

1 голос
/ 16 января 2012

Вы пропустили открывающую цитату до Just:

myclass<char, char *> ob2('X', Just show ");
//                             ^ 
// should be:
myclass<char, char *> ob2('X', "Just show");

Обратите внимание, что вы должны использовать const char*, когда вы хотите разрешить передачу строковых литералов, и что это имеет проблемы с владением. Предпочтительно использовать std::string вместо.

1 голос
/ 16 января 2012

Вам не хватает " в myclass<char, char *> ob2('X', Just show ");, оно должно быть myclass<char, char*> ob2('X', "Just show ");. Кроме того, тип должен, вероятно, myclass<char, const char*> вместо myclass<char, char*>

...