gpt4 book ai didi

c++ - 带有一个默认参数的构造函数

转载 作者:行者123 更新时间:2023-11-30 01:29:46 25 4
gpt4 key购买 nike

我搜索过但找不到答案。

所以我有我的 C++ 构造函数:

MyClass(string username = "something");

注意这是我唯一的构造函数。

我主要是这样的:

MyClass one();
MyClass two = MyClass();

这两个表达式是等价的吗?编译器会使用默认字符串调用我的构造函数,还是会调用默认(空)构造函数?

如果我确实有一个构造函数 MyClass(); 会发生什么变化? ?我想那不会编译,对吧?

最佳答案

MyClass one();

这声明了一个函数 one 返回一个 MyClass 对象并且不带任何参数。

如果您同时拥有默认构造函数(形式为 MyClass())和默认参数构造函数(形式为 MyClass(string s = "string"))如果你不通过任何论点,一个会被调用吗?

例如这不会编译

class MyClass
{
public:
MyClass(std::string username = "something") {}
MyClass(){}
};

int main()
{
MyClass one();
MyClass two = MyClass(); //ambiguous call here
}

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

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