小编Max*_*xpm的帖子

单行模式匹配的语法是什么?

word 0 = "Zero"
word 1 = "One"
word 2 = "Two"
Run Code Online (Sandbox Code Playgroud)

我如何将像这样的模式匹配函数压缩成一行?

我试过了word 0 = "Zero" word 1 = "One" word 2 = "Two",但那没用.

syntax haskell pattern-matching

21
推荐指数
3
解决办法
3707
查看次数

类可以共享命名空间的名称吗?

以下C++代码是否有效?

namespace Foo
{
    class Bar
    {
        // Class code here.
    };
}
Run Code Online (Sandbox Code Playgroud)

namespace Foo
{
    namespace Bar
    {
        void SomeFunction();
        {
            // Function code here.
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

换句话说,是否可以存在与类同名的命名空间?

c++ symbols namespaces class

20
推荐指数
2
解决办法
2万
查看次数

何时适合使用虚拟方法?

我知道虚方法允许派生类重写从基类继承的方法.何时使用虚拟方法是否合适/不合适?并不总是知道一个班级是否会被分类.一切都应该是虚拟的,只是"以防万一?" 或者这会导致很大的开销吗?

c++ oop methods virtual

20
推荐指数
3
解决办法
5933
查看次数

按位NOT运算符的说明

为什么按位NOT运算符(~在大多数语言中)转换如下所示的值:

-2 -> 1
-1 -> 0
0 -> -1
1 -> -2

不应该-2转换为2,1转换为-1等?

bitwise-operators

19
推荐指数
2
解决办法
3万
查看次数

是否可以放弃简单类的getter和setter?

我正在制作一个非常简单的类来表示3D空间中的位置.

目前,我只是让用户访问和修改个人X,YZ值直接.换句话说,它们是公共成员变量.

template <typename NumericType = double>
struct Position
{
    NumericType X, Y, Z;

    // Constructors, operators and stuff...
};
Run Code Online (Sandbox Code Playgroud)

这背后的原因是,因为NumericType是一个模板参数,我不能依赖于有一个体面的方法来检查值的理智.(我怎么知道用户不希望用负值表示位置?)因此,添加getter或setter以使接口复杂化是没有意义的,因为简洁直接访问应该受到青睐.

Pos.X = Pos.Y + Pos.Z; // Versus...
Pos.SetX(Pos.GetY() + Pos.GetZ());
Run Code Online (Sandbox Code Playgroud)

这是一个好的例外吗?我的代码的(假设的)未来维护者是否会追捕我并打击我的脸?

c++ oop encapsulation getter-setter member-variables

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

初始化列表中的依赖关系

这种行为定义明确吗?

class Foo
{
    int A, B;

    public:

    Foo(int Bar): B(Bar), A(B + 123)
    {
    }
};

int main()
{
    Foo MyFoo(0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ initialization standards-compliance undefined-behavior ctor-initializer

18
推荐指数
2
解决办法
1707
查看次数

运算符++中的Int Argument

class myClass
{
    public:

    void operator++()
    {
        // ++myInstance.
    }

    void operator++(int)
    {
        // myInstance++.
    }
}
Run Code Online (Sandbox Code Playgroud)

让编译器区分myInstance++++myInstance,实际上是什么可选int参数operator++?如果是这样,它是什么?

c++ arguments class operator-overloading

16
推荐指数
2
解决办法
7496
查看次数

"公共"和"私人"可见性修饰符的缩进

我通常缩进public:private:访问说明符这样:

class Foo()
{
    private:

    void Bar1() {}

    public:

    void Bar2() {}
}
Run Code Online (Sandbox Code Playgroud)

然而,Xcode似乎并不喜欢这样,所以我觉得我做错了.什么被认为是普遍的做法缩进private:public:

c++ coding-style class indentation

16
推荐指数
4
解决办法
8924
查看次数

asyncio 中所有这些已弃用的“循环”参数是什么?

中的许多函数asyncio都有不推荐使用的loop参数,计划在 Python 3.10 中删除。实例包括as_completed()sleep(),和wait()

我正在寻找有关这些参数及其删除的一些历史背景。

  • loop解决了哪些问题?一开始为什么要使用它?
  • 出了什么问题loop?为什么要大量删除?
  • 什么取代了loop,现在它消失了?

python deprecated python-3.x python-asyncio

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

什么是'...'令牌的正确用语?

考虑printf:

int printf ( const char * format, ... );
Run Code Online (Sandbox Code Playgroud)

用于描述...和使用它的函数的术语是什么?我一直称它为省略号,但这就像调用&"&符号运算符".

c c++ terminology

15
推荐指数
3
解决办法
2957
查看次数