gpt4 book ai didi

c++ - 这两个构造函数有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:59 24 4
gpt4 key购买 nike

这两个构造函数有什么区别?

int x, y; //position 

BasePoint(int px, int py) : x(px), y(py) {}

int x, y; //position 

BasePoint(int px, int py)
{
x = px;
y = py;
}

x(px), y(py) 叫什么?什么时候使用这种类型的变量初始化?

谢谢。

最佳答案

第一个是使用 initialization-list 进行初始化,第二个是使用赋值运算符进行赋值

推荐第一个!

BasePoint(int px, int py) : x(px), y(py) {}
^^^^^^^^^^^^^ this is called initialization-list!

阅读此常见问题解答:Should my constructors use "initialization lists" or "assignment"?

常见问题解答开头为:

Initialization lists. In fact, constructors should initialize as a rule all member objects in the initialization list. One exception is discussed further down [...]

阅读完整答案。

关于c++ - 这两个构造函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5256330/

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