gpt4 book ai didi

c++ - 奇怪的 QString 初始化为 0 - 它有什么作用?

转载 作者:行者123 更新时间:2023-11-30 03:31:44 26 4
gpt4 key购买 nike

抱歉,我在 C++ 手册中找不到合适的位置。

在以下字符串中:

void setYRange(QString name1, int s1, int e1, QString name2 = 0, int s2 = 0, int e2 = 0);

我不懂初始化:

QString name2 = 0
  • 如果是字符串,为什么要用整数初始化?
  • 如果它是一个对象引用,为什么它没有用 NULL 初始化?
  • 如果它创建一个对象并用 0 字节填充它,它如何知道要分配多少字节?

请给我一个 C++ 手册中正确位置的引用。

最佳答案

您看到的是编译器选择了 QString::QString(const QChar *unicode, int size = -1)构造函数。 0 是空指针值,因此可以从中隐式构造指针。这意味着编译器将选择 c 字符串构造函数并将指针初始化为空指针。由于指针为 null,这意味着您将构造一个 null QString(它是空的)。

请注意,此行为不同于 std::string。从空指针构造其中一个是未定义的行为。

关于c++ - 奇怪的 QString 初始化为 0 - 它有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43981746/

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