描述这个c ++代码的第8行?

时间:2017-09-14 06:31:21

标签: c++ friend

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

我知道这个“::”范围限定符。
我知道这个 ”:?”条件运算符
Box():length(0){} // 这段代码让我很困惑 它与我们在java或其他东西中使用的块相同。

#include <iostream>  
using namespace std;  
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;  
}  

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您引用的第8行是非默认构造函数。每次创建Box类的对象时都会调用它。 “length(0)”部分表示它将该Box对象的length属性设置为0。 如果我是你,我会读到默认构造函数和非默认构造函数。希望有所帮助。

答案 2 :(得分:0)

定义了一个构造函数Box,它将length初始化为0

答案 3 :(得分:0)

这意味着您初始化Box具有参数length0的构造函数

一般语法

Constructor_name : Parameter_name(value)
{

}