gpt4 book ai didi

c++ - 为什么 GCC 在匹配函数时要看私有(private)构造函数?

转载 作者:行者123 更新时间:2023-11-30 01:01:27 25 4
gpt4 key购买 nike

我现在很忙写调试一些代码,所以我不能编一个完整的例子,但这基本上描述了我的问题

class Base{};
class MyX:public Base
{
...
};
class Derived:Base
{
...
};
template<class X>
class MyClass:Derived
{
private:
MyClass(const MyClass& )
:x()
{}
public:
MyClass(const X& value)
:x(value)
{}
};

....
MyX x;
MyClass<MyX>(x);

这给了我这样的错误:

error: there are two possible constrcutors MyClass<X>(const MyClass<X>&) and MyClass<X>(const X&)

最佳答案

MyClass<MyX>(x);

被解析为

MyClass<MyX> x;

但是MyClass<MyX>没有默认构造函数。尝试给它起个名字:

MyClass<MyX> p(x);

关于c++ - 为什么 GCC 在匹配函数时要看私有(private)构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/515100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com