我正在学习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功能允许...
这将是box的默认构造函数,运行时将length成员变量初始化为0。如果您尝试将其中的0更改为例如12,则所有框的默认长度均为12。查找C++ Constructor initialization list
以获取更多信息。
您要引用的第8行是非默认构造函数。每次创建Box类的对象时都会调用它。 “ length(0)”部分意味着它将Box对象的length属性设置为0。如果您是我,我将阅读有关默认构造函数和非默认构造函数的信息。希望有帮助。
定义了将Box
初始化为0的构造器[C0
这表示您初始化具有参数length
值Box
的length
构造函数>
常规语法