gpt4 book ai didi

c++ - 快速 C++ 类混淆 : What does this line mean?

转载 作者:行者123 更新时间:2023-11-30 03:02:18 27 4
gpt4 key购买 nike

我正在将一些 C++ 移植到 Java,并遇到以下速记..但不知道这意味着什么,甚至不知道如何去谷歌搜索它:

class mailbox {
public:
mailbox(): sent(0),received(0),msg(0) { }

我不明白这个方法在 mailbox() 表示之后调用 (?) 是什么意思。

谢谢。

最佳答案

这是成员初始化语法。它将数据成员初始化为构造函数主体开始之前指定的值。

这是 C++11 之前初始化非静态常量数据成员的唯一方法,并且比在构造函数体中初始化更快。

好像是

mailbox() {
sent = 0;
received = 0;
msg = 0;
}

除了速度更快,它也可以在 const 成员上执行。事实上,虽然它不提供对数据成员执行检查的能力,但您仍然可以利用它:

mailbox (Foo sent, Bar received, Foobar msg) : sent (0), received (0), msg (0) { //default values
if (!setSent (sent))
cout << "Error setting sent; sent is 0 instead."; //since we initialized it to 0 before
//likewise for other members...
}

关于c++ - 快速 C++ 类混淆 : What does this line mean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10256298/

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