我正在学习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;
}
答案 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
具有参数length
值0
的构造函数
一般语法
Constructor_name : Parameter_name(value)
{
}