没有可用的复制构造函数或复制构造函数声明为“explicit”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没有可用的复制构造函数或复制构造函数声明为“explicit”相关的知识,希望对你有一定的参考价值。
哪位高手能解释一下,我看到这个一下子就晕了,根本不知道怎么弄了。
explicit表示显示的意思。比如你声明一个类:class CMyClass
private:
int data;
public:
void setData(int value);
int getData();
;
但是没有声明构造函数,那么这就是隐式声明implicit
而:
class CMyClass
private:
int data;
public:
CMyClass(); /*这样是显式声明explicit*/
void setData(int value);
int getData();
; 参考技术A 贴代码
Java 11 中默认构造函数的可见性? [复制]
【中文标题】Java 11 中默认构造函数的可见性? [复制]【英文标题】:Visibility of a default constructor in Java 11? [duplicate] 【发布时间】:2019-08-07 16:00:44 【问题描述】:Java11 中默认构造函数的可见性是什么? 这与构造函数的默认可见性不同。
【问题讨论】:
是什么阻止你自己去看看? ^ 也许吧,但他是专门询问 Java 11 的。 @ErvinSzilagyi:“在没有特定访问修饰符的情况下声明的成员的访问”和“由构造函数提供的默认构造函数的访问”之间存在区别。 与所有其他 Java 版本相同。 【参考方案1】:默认构造函数的可见性取决于类的访问修饰符,如java规范Chapter 8. Classes - 8.8.9. Default Constructor中所述:
默认构造函数与类具有相同的访问修饰符,除非类缺少访问修饰符,在这种情况下,默认构造函数具有包访问权限(第 6.6 节)。
【讨论】:
以上是关于没有可用的复制构造函数或复制构造函数声明为“explicit”的主要内容,如果未能解决你的问题,请参考以下文章