インスタンス作成時に(電話番号,"名前の文字リテラル")を引数にしてメンバ変数を初期化するクラスを作成したのですが、以下のようなエラーが出てしまい、ググってみてもいまいち理解ができません。
どなたかわかる方がいましたら教えてくださいませ。
c++study.cpp:35:20: error: no matching constructor for initialization of
'phones<long>'
phones < long >a(10192020,"miffy");
^ ~~~~~~~~~~~~~~~~
c++study.cpp:9:5: note: candidate constructor not viable: no known conversion
from 'const char [6]' to 'const char' for 2nd argument
phones( T f,const char c)
^
c++study.cpp:5:7: note: candidate constructor (the implicit copy constructor)
not viable: requires 1 argument, but 2 were provided
class phones{
^
c++study.cpp:36:20: error: no matching constructor for initialization of
'phones<long>'
phones < long >b(19585,"john");
^ ~~~~~~~~~~~~
c++study.cpp:9:5: note: candidate constructor not viable: no known conversion
from 'const char [5]' to 'const char' for 2nd argument
phones( T f,const char c)
c++
1#include <iostream> 2using namespace std; 3 4template <class T> 5class phones{ 6 T *p; 7 char *ch; 8public: 9 phones( T f,const char c) 10 { 11 cout << "コンストラクタ起動\n"; 12 p = new T; 13 ch = new char; 14 15 *p = f; 16 *ch = c; 17 } 18 ~phones() 19 { 20 cout<<"デストラクタ起動\n"; 21 delete p; 22 delete ch; 23 } 24 25 void show(){cout <<"電話番号は:"<< *p << "\n"; 26 cout << "名前は:" << *ch << "\n"; 27 cout << "show起動\n"; 28 } 29 30}; 31 32 33int main() 34{ 35 phones < long >a(10192020,"miffy"); 36 phones < long >b(19585,"john"); 37 a.show(); 38 b.show(); 39 return 0; 40 41} 42 43 44
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。