gpt4 book ai didi

c++ - 构造函数默认 - 公共(public)和私有(private)变量

转载 作者:行者123 更新时间:2023-11-28 05:01:10 24 4
gpt4 key购买 nike

我知道 java,现在正在学习 C++。我比其他语言更容易学习它,它有很多相同的东西。我的问题是在一本书的类里面有一个完整的构造函数,但我没有在任何地方遇到默认构造函数。有c++默认构造函数,如果是我应该写它吗?此外,我想测试和一些东西,在这个类上有public:并且在它下面有变量,一段时间后有private:下面还有一些变量。像java的public和private变量吗?但不是写 private int numbers; 在 c++ 上我们写

private:
int numbers;
int coffee;

我说的对吗?

最佳答案

很难准确地说出你在问什么。但:1) 如果您不自己创建任何构造函数,则会为您生成一个默认构造函数。默认情况下是公开的。2) 生成的默认构造函数将默认按照声明顺序构造基类和类的成员(虚拟基(如果有的话),深度优先,从右到左的声明顺序,然后是从左到右的声明顺序的普通基,然后按声明顺序排列成员变量,如果其中任何一个不能默认构造,那么就不能为你生成默认构造函数。3) 如果存在常量成员或引用成员,或者没有默认构造函数的成员,或者您的类具有没有默认构造函数的基类,则无法生成默认构造函数,因为这些成员必须使用一个或多个值进行初始化。4) 如果你定义了一个构造函数,并且你还希望编译器为你生成一个默认构造函数,并且默认构造函数在你的代码中是有效的,那么这样做:

class MyClass
{
public:
MyClass() = default; // explicitly tell compiler to generate a default
MyClass(int x) { ...} // normally would suppress gen of default ctor
};

如果我理解你关于访问说明符的问题,它们就像标签,并且它们后面的所有内容都有该访问规范,直到你编写另一个更改它的内容。在一个类中,默认访问是私有(private)的。在结构中,访问是公开的。

希望这对您有所帮助。

关于c++ - 构造函数默认 - 公共(public)和私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45943574/

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