gpt4 book ai didi

具有默认参数的c++构造函数

转载 作者:太空狗 更新时间:2023-10-29 23:46:13 24 4
gpt4 key购买 nike

你好,我创建了这个类,它有一个默认构造函数和一个带默认参数的构造函数

Something.h

class Something // Fraction class
{
public:
Something (void); // default ctor
Something (int xx, int yy = 1 );
int x,y;
}

某事.cpp

Something::Something(){}

Something::Something(int xx, int yy)
{
x = xx;
y = yy;
}

但是当我创建没有参数的对象并打印它时,它会显示 x = 0, y = 0;

问题可能在哪里:(谢谢!

最佳答案

当你创建一个没有参数的对象时,你会调用默认的构造函数:

Something::Something(){}

这个初始化xy ,这意味着您可以获得适合 int 的任何值.大概你正在使用调试配置,所以你得到 xy初始化为 0 .无论出于何种原因,您都不应该指望这种行为。

要使用默认参数调用构造函数,您需要使用一个或两个参数调用它:

Something s1(5);
Something s2(5,6);

编辑如果你想确保你的默认构造函数零初始化xy ,您可以在初始化列表中明确地这样做:

Something::Something() : x(0), y(0) {}

关于具有默认参数的c++构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13028141/

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