操作员过载()
Operator overload ()
本文关键字:操作员 更新时间:2023-10-16
为什么这个结果是3?我并不低估"Class1():a(3)"的含义。
class Class1
{
private:
int a;
public:
Class1() :a(3)
{
};
Class1(int f)
{
a = (int)f;
};
};
这是主
int main(void)
{
Class1 c11;
c11.print();
}
"我并不低估
Class1() :a(3)
的含义。"
它被称为成员初始化器列表,并使用值3
初始化类成员变量a
。
另请参阅构造函数中这个奇怪的冒号成员(":")语法是什么?
Class1()是一个构造函数。
构造函数是在创建对象时初始化类成员值的函数。这里,当您使用Class1c11时,会调用构造函数,并且值c11.a初始化为3。
Class1():a(3)表示构造函数正在将a初始化为3。
要了解更多关于构造函数的信息,请访问以下链接
http://www.tutorialspoint.com/cplusplus/cpp_constructor_destructor.htm
http://www.cprogramming.com/tutorial/constructor_destructor_ordering.html
这是一个"成员初始值设定项列表"。成员变量int a
简单地用值3
初始化。在构造函数中将值分配给a
将是赋值。
初始化器列表初始化成员变量(通过自己或父类的构造函数)。如果某个成员变量不包含在列表中,则它被默认初始化,即调用它们的默认构造函数,对于类型为int
的成员变量,这是一个值为0
的初始化。
结论:
初始化构造函数中的成员变量,首先调用默认构造函数,然后将特定值分配给成员。
相关文章:
- <<操作员在下面的行中工作
- C++ 与操作员不匹配<<
- 操作员C++的模棱两可的过载
- C++中>>操作员过载时出现问题?
- NaN 上的宇宙飞船操作员
- 比根<操作员
- SFINAE不能防止模棱两可的操作员过载吗?
- 什么是现实中的"endl"(或任何输出操纵器)?它是如何实现的,它如何与操作员<<一起工
- 为什么"delete"操作员给我访问权限冲突
- 为什么使操作员成为新的专用会打破 std::shared_ptr?
- 在这种情况下是私有的吗?试图使操作员<<过载
- C++操作员过载>>
- 是否有 C++20 浮点数的包装器,使我能够默认宇宙飞船操作员?
- 与异常处理程序中的操作员<<不匹配
- 复印作业操作员说明
- 友谊和操作员+=重载
- >操作员在比较两个C++容器时会怎么做?
- 与操作员比较两个计时时间点
- C++操作员订单评估
- 如何强制新操作员根据我的需要解释语句