关于Java的八行含义是什么?

问题描述 投票:-5回答:4

我正在学习C ++,目前我以前学习过Java(那里没有朋友函数的概念)。但是这里目前在朋友功能部分。顺便说一句,我知道Friend函数允许访问该类的私有数据和受保护数据。

我知道这个“ ::”范围限定符。我知道这个 ”:?”条件运算符Box():length(0){} //此代码行使我感到困惑。它与我们在Java或其他应用程序中使用的块相同吗?

class Box  
{  
    private:  
        int length;  
    public:  
        Box(): length(0) { }  // ****What is this ?? ******
        friend int printLength(Box); //friend function  
};  
int printLength(Box b)  
{  
    b.length += 10;  
    return b.length;  
}  
int main()  
{  
    Box b;  
    cout<<"Length of box: "<< printLength(b)<<endl;  
    return 0;  
}  

我正在学习C ++,目前我以前学习过Java(那里没有朋友函数的概念)。但是这里目前在朋友功能部分。顺便说一句,我知道Friend功能允许...

c++ friend
4个回答
2
投票

这将是box的默认构造函数,运行时将length成员变量初始化为0。如果您尝试将其中的0更改为例如12,则所有框的默认长度均为12。查找C++ Constructor initialization list以获取更多信息。


0
投票

您要引用的第8行是非默认构造函数。每次创建Box类的对象时都会调用它。 “ length(0)”部分意味着它将Box对象的length属性设置为0。如果您是我,我将阅读有关默认构造函数和非默认构造函数的信息。希望有帮助。


0
投票

定义了将Box初始化为0的构造器[C0


0
投票

这表示您初始化具有参数lengthBoxlength构造函数>

常规语法

© www.soinside.com 2019 - 2024. All rights reserved.