2016-09-06 13 views
-1

やあみんな...の変換コンストラクタC++私は、このクラスを書いた

struct TestStruct { 
int a; 
TestStruct(int pA) : a(pA){}; 
}; 

template <typename T> class ClassA { 
public: 
ClassA() : mTestStruct(sizeof(T)) {} 

ClassA(T *ptr) : mTestStruct(sizeof(T)){}; 

ClassA(T param) : mTestStruct(sizeof(T)){}; 

ClassA(ClassA<T> &p){}; 

private: 
TestStruct mTestStruct; 
ClassA<T> &operator=(T *ptr) { return *this; }; 
}; 

とこのような何かをしたいです。 (変換コンストラクタと呼ばれていると思います)。

ClassA<long> p = new long; 

これはわかります。 私はこの1つは...

ClassA<long> p(new long) 

任意のアイデア方法で動作します?-std = C++ 14

no viable constructor copying variable of type 'ClassA<long>' 

でそれをコンパイル

EDITED:これはエラーメッセージを再現するために使用したコードです。パラメータ(T=long)としてlongを取得ClassAコンストラクタ

+0

そのクラス定義が偽である:


あなたがコピーされた変数として&longを取得ClassAでコピーコンストラクタ、のようなものを作成する必要があります。実際のコードを投稿してください。 –

+1

[再現できません](http://coliru.stacked-crooked.com/a/015c33c7ea806933) – AndyG

+1

いいえ、「実コード」は投稿しないでください。あなたが過去数日間デバッグしていた[MCVE]を投稿してください。 –

答えて

関連する問題