2012-01-16 3 views
0

문제점을 찾을 수 없습니다. 내가 클래스 템플릿 매개 변수로 char를 사용하는 것을 시도하고있다 : 당신은 myclass<char, char *> ob2('X', Just show ");" 누락C++ 템플릿 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(); 
} 
+1

그래서 문제가 무엇입니까? 무슨 일 이니? 또한 다음 번에 코드 형식을 지정하십시오. –

+0

어쩌면 당신은 당신의 문제가 무엇인지 우리에게 말해야합니다 ... – Grizzly

+0

ideone에서 이것을 실행하면 잘 동작하는 것 같습니다. http://ideone.com/xF9wC –

답변

1

의 당신은 Just 전에 개방 견적을 누락해야합니다

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

참고하면 문자열 리터럴을 통과 허용 할 때 const char*를 사용해야하고이 소유권 문제가 있다는 것을 불구하고 . 대체로 std::string을 대신 사용하십시오.

1

, 그것은 myclass<char, char*> ob2('X', "Just show ");해야합니다. 또한 유형은 아마 myclass<char, const char*> 대신 myclass<char, char*>