【发布时间】:2023-03-25 05:56:01
【问题描述】:
大家好,我写了这门课……
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;
但我明白了。 我用 -std=c++14 编译它
no viable constructor copying variable of type 'ClassA<long>'
顺便说一句,这个工作......
ClassA<long> p(new long)
有什么想法吗?
已编辑:好的,这是我用来重现错误消息的代码。
【问题讨论】:
-
那个类定义是假的。请贴出真实代码。
-
不,不要发布“真实代码”。发布您过去几天一直在调试的minimal reproducible example。
标签: c++ templates constructor