【发布时间】:2011-06-10 06:08:27
【问题描述】:
可能重复:
What is this weird colon-member syntax in the constructor?
我以为我什么都知道,但似乎总是会弹出一些东西。也许我忘记了什么。 : ::name 是什么意思?我怀疑::google 意味着来自全局命名空间使用google、protobuf、message。但是: 在它之前做了什么?左边没有文字,所以它不能是标签(或者可以吗?!)。那是什么?
Namespace::Namespace()
: ::google::protobuf::Message() {
SharedCtor();
}
-edit- 我觉得很傻,缩进让我感到困惑。我以为我在看函数体内。我非常希望这会是新的东西。
【问题讨论】:
-
显然是这样,而且它似乎源自 ::google::protobuf::Message。
-
如果你不了解构造函数初始化列表这样重要的基本语言特性,那么你离“无所不知”还很远。
-
一旦你了解了 C++ 的一切,你就已经成功了一半。一旦你意识到你只完成了一半并学习了下半部分,你就会知道那只是你实际上不知道的一半。重复...
-
@Martin:这意味着我们只能渐近地了解有关 C++ 的一切,我们永远无法真正做到。正确的? 8v)
-
@AndreyT,@Martin York:废话!缩进得到了我。我认为那部分是函数内部,因此标签注释!我觉得自己很傻,想给自己-1(但没人这样做,会发生很多倍数)