草庐IT

default-public

全部标签

c++ - 删除copy-ctor和copy-assignment - public、private还是protected?

为了使对象不可复制,我们可以显式删除其复制构造函数和复制赋值运算符。我的问题是:什么是正确的做法-在类(class)的public、private或protected部分?而且-这个选择有什么不同吗? 最佳答案 whatistherightplacetodoit-inthepublic,privateorprotectedsectionoftheclass?我会将它们放在public部分。这是因为删除构造函数或赋值运算符与将它们设为private/protected是正交的;当这些没有被删除时,它们默认是public的。在我看来,将

C++ 类(公共(public)、私有(private)和 protected )

如何将C++中的类声明为public、private或protected? 最佳答案 在C++中,没有像Java或C#中那样具有访问说明符的整个类的概念。如果一段代码对某个类具有可见性,则它可以引用该类的名称并对其进行操作。也就是说,对此有一些限制。仅仅因为您可以引用一个类并不意味着您可以实例化它,例如,因为构造函数可能被标记为私有(private)。同样,如果该类是在另一个类的私有(private)或protected部分中声明的嵌套类,则该类将无法从该类及其friend的外部访问。

C++ 类(公共(public)、私有(private)和 protected )

如何将C++中的类声明为public、private或protected? 最佳答案 在C++中,没有像Java或C#中那样具有访问说明符的整个类的概念。如果一段代码对某个类具有可见性,则它可以引用该类的名称并对其进行操作。也就是说,对此有一些限制。仅仅因为您可以引用一个类并不意味着您可以实例化它,例如,因为构造函数可能被标记为私有(private)。同样,如果该类是在另一个类的私有(private)或protected部分中声明的嵌套类,则该类将无法从该类及其friend的外部访问。

c++ - 为什么我的编译器无法识别 "Bond() = default;"?

请看这段代码classBond{public:Bond(intpayments_per_year,intperiod_lengths_in_months);Bond()=default;private:constintpayments_per_year;constintperiod_length_in_months;};intmain(){Bondb;//Errorhere}尝试编译时出现错误:errorC2280:'Bond::Bond(void)':attemptingtoreferenceadeletedfunction".这不是违反“3规则”,因为我已经添加了默认构造函数。为什

c++ - 为什么我的编译器无法识别 "Bond() = default;"?

请看这段代码classBond{public:Bond(intpayments_per_year,intperiod_lengths_in_months);Bond()=default;private:constintpayments_per_year;constintperiod_length_in_months;};intmain(){Bondb;//Errorhere}尝试编译时出现错误:errorC2280:'Bond::Bond(void)':attemptingtoreferenceadeletedfunction".这不是违反“3规则”,因为我已经添加了默认构造函数。为什

c++ - 什么是访问说明符?我应该以私有(private)、 protected 还是公共(public)继承?

我对访问修饰符在继承方面的含义感到困惑。涉及private、protected和public关键字的继承有什么区别? 最佳答案 什么是访问说明符?C++中的类/结构/union有3个访问说明符。这些访问说明符定义了如何访问类的成员。当然,类的任何成员都可以在该类中访问(在同一类的任何成员函数内)。继续访问访问说明符的类型,它们是:Public-声明为Public的成员可以通过类的对象从类外部访问。Protected-声明为Protected的成员只能从类BUT外部访问,但只能在从它派生的类中访问。Private-这些成员只能从类中访

c++ - 什么是访问说明符?我应该以私有(private)、 protected 还是公共(public)继承?

我对访问修饰符在继承方面的含义感到困惑。涉及private、protected和public关键字的继承有什么区别? 最佳答案 什么是访问说明符?C++中的类/结构/union有3个访问说明符。这些访问说明符定义了如何访问类的成员。当然,类的任何成员都可以在该类中访问(在同一类的任何成员函数内)。继续访问访问说明符的类型,它们是:Public-声明为Public的成员可以通过类的对象从类外部访问。Protected-声明为Protected的成员只能从类BUT外部访问,但只能在从它派生的类中访问。Private-这些成员只能从类中访

c++ - 为什么我们需要使用 virtual ~A() = default;而不是 C++11 中的虚拟 ~A() {}?

在堆栈溢出帖子中CheckingtheobjecttypeinC++11,我有意见:InC++11you'llactuallywanttodovirtual~A()=default;Otherwise,you'lllosetheimplictmoveconstructors.virtual~A()=default;是干什么用的?virtual~A(){}为何会丢失隐式移动构造函数? 最佳答案 评论不正确。两者:virtual~A()=default;和virtual~A(){}被用户声明。如果析构函数是用户声明的,则隐式移动成员将被

c++ - 为什么我们需要使用 virtual ~A() = default;而不是 C++11 中的虚拟 ~A() {}?

在堆栈溢出帖子中CheckingtheobjecttypeinC++11,我有意见:InC++11you'llactuallywanttodovirtual~A()=default;Otherwise,you'lllosetheimplictmoveconstructors.virtual~A()=default;是干什么用的?virtual~A(){}为何会丢失隐式移动构造函数? 最佳答案 评论不正确。两者:virtual~A()=default;和virtual~A(){}被用户声明。如果析构函数是用户声明的,则隐式移动成员将被

javascript - `export const` 与 ES6 中的 `export default`

我正在尝试确定这两者之间是否有任何重大差异,除了能够通过exportdefault进行导入,只需执行以下操作:importmyItemfrom'myItem';使用exportconst我可以做到:import{myItem}from'myItem';除此之外还有其他区别和/或用例吗? 最佳答案 这是一个命名导出与默认导出。exportconst是导出一个或多个const声明的命名导出。强调:这里重要的是export关键字为const用于声明一个或多个const声明。export也可以应用于其他声明,例如类或函数声明。默认导出(导出