相关疑难解决方法(0)

为什么会出现默认参数的警告?

将 ReSharper 与 C++17 结合使用,我启用了许多警告,只是为了看看我的项目警告了我什么。我明白了:

Declaring a parameter with a default argument is disallowed[fuchsia-default-arguments]
Run Code Online (Sandbox Code Playgroud)

有问题的代码是构造函数:

class Point2D
{
public:
    explicit Point2D(double x = 0.0, double y = 0.0);
};
Run Code Online (Sandbox Code Playgroud)

我想知道为什么默认参数会被认为是坏/差/值得警告?有人有任何代码示例证明这是一个可行的警告吗?

这是文档。

c++ c++17

3
推荐指数
1
解决办法
1704
查看次数

错误C2512:'Tile':没有合适的默认构造函数可用

即使使用默认构造函数仍然有错误.

class Foo {
    public:
    Foo ( int x, int y, int type );
}
Run Code Online (Sandbox Code Playgroud)

并在.cpp文件中

Foo::Foo ( int x = 0, int y = 0, int type = 0 ) {
Run Code Online (Sandbox Code Playgroud)

然而,当我打电话给它

Foo foo_array[5][5];
Run Code Online (Sandbox Code Playgroud)

我收到了错误.这可能是什么原因?

c++ default-constructor

1
推荐指数
1
解决办法
452
查看次数

标签 统计

c++ ×2

c++17 ×1

default-constructor ×1