小编Mic*_*ron的帖子

x的多个声明

我有这个代码,它不会编译,突出显示Point3的x和y右边并写:"x的多个声明"和"y的多个声明".怎么了?Point2和Point3不能拥有相同的成员名称吗?

data Point2     = Point2 {x :: Float, y :: Float}
data Point3     = Point3 {x :: Float, y :: Float, z :: Float}
Run Code Online (Sandbox Code Playgroud)

haskell declaration

31
推荐指数
2
解决办法
5983
查看次数

Java:如何拥有子类类型的数组?

假设我有一个超类“Animal”和子类“Cat”、Dog、Bird“。有没有办法拥有子类类型数组而不是类实例,我可以用它来实例化每个可能的子类的实例?

为了简单起见,我想要这个:

Pseudo code: For each possible subclass of "Animal": create an instance of that class.
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

编辑:我不需要这些子类的实例数组,我想要一个对象类型的数组。

java arrays inheritance subclass superclass

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

Haskell:功能组合(.)与功能应用程序($)在性能方面有何关系?

在Haskell中,当性能很重要并且使用美元或点都是有效选项时,哪一个比另一个好?一个人会比另一个人获得性能提升吗?

例如,给定(foo . bar. baz) valuefoo $ bar $ baz value,是一个比另一个快?

performance haskell functional-programming

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

我应该怎么做让WS_MAXIMIZE工作?

我的程序是如何开始的:

   int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nShowCmd)
    {
        MapEditor mapEditor;

        mapEditor.Run();

        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

并且有MapEditor():

MapEditor::MapEditor()
{
    /* Creates the window */
    WNDCLASSEX wClass;
    ZeroMemory(&wClass,sizeof(WNDCLASSEX));
    wClass.cbSize=sizeof(WNDCLASSEX);
    wClass.style=CS_HREDRAW|CS_VREDRAW;
    wClass.lpfnWndProc=WinProc;
    wClass.cbClsExtra=NULL;
    wClass.cbWndExtra=NULL;
    wClass.hInstance=GetModuleHandle(0);
    wClass.hIcon=NULL;
    wClass.hCursor=LoadCursor(NULL,IDC_ARROW);
    wClass.hbrBackground=(HBRUSH)COLOR_WINDOW;
    wClass.lpszMenuName=NULL;
    wClass.lpszClassName="Map Editor";
    wClass.hIconSm=NULL;

    if(!RegisterClassEx(&wClass))
    {
        int nResult=GetLastError();

        MessageBox(NULL,"Failed to register window class","Window Class Failed",MB_ICONERROR);
    }

    ME_HWnd=CreateWindowEx(NULL,
            "Map Editor",
            "Map Editor",
            WS_OVERLAPPEDWINDOW | WS_MAXIMIZE | WS_VISIBLE,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            NULL,
            NULL,
            GetModuleHandle(0),
            this);

    if(!ME_HWnd)
    {
        int nResult=GetLastError();

        MessageBox(NULL,"Window class creation failed","Window …
Run Code Online (Sandbox Code Playgroud)

c++ oop winapi wndproc

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

阻止visual studio 2013重新定位新线上的支架?

当我按下回车键时,它会重新定位大括号.我怎么能阻止它?我希望VS在键入开口支撑后自动添加一个右大括号,但我不希望它在输入时移动大括号.我怎样才能做到这一点?

.net c# visual-studio visual-studio-2012 visual-studio-2013

4
推荐指数
2
解决办法
3732
查看次数

是否可以使用枚举来访问数组?

以下工作如下:

enum TileBmp {Mask, Grass, Sand, Snow, Swamp, Paved, Rock, Savannah, Lava}

ID2D1Bitmap* pBmpTile[TileBmp];
Run Code Online (Sandbox Code Playgroud)

这会创建一个大小为9的数组,其中可以使用其编号或名称访问任何元素吗?例如,pBmpTile [3]和pBmpTile [Snow]是否都指向相同的ID2D1Bitmap*?

我现在不能尝试,直到有时才会有能力.否则我会自己尝试一下.

如果这不起作用,两者都有更清洁的替代品

ID2D1Bitmap* pBmpTile[9]

ID2D1Bitmap* pBmpMask, pBmpGrass, pBmpSand, pBmpSnow, pBmpSwamp, pBmpPaved, pBmpRock, pBmpSavannah, pBmpLava;
Run Code Online (Sandbox Code Playgroud)

c++ arrays oop enums data-structures

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

Haskell:替代f = foo e,e = bar d,d = baz c的模式

我有一个正在增长的功能,它正在获得如下所示的模式.什么是这些的适当替代品,其中f = fooed e等于裸露e等于bazed d ...?

myFunc:: String -> Options -> String
myFunc someString opts = topStr ++ editedMidStr ++ botStr
    where editedMidStr  = foo f
          f             = bar e
          e             = baz d
          d             = qux c
          ...           = ...
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming function where

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

为什么Haskell允许使用Shape列表,但没有Square或Circle或Triangle列表

为什么Haskell允许在第一个例子中做一个Shape列表,但不像第二个例子那样?据我所知,两个列表都有元素

{ name :: String, position :: Vector3D, radius :: Double }
Run Code Online (Sandbox Code Playgroud)

要么

{ name :: String, position :: Vector3D, dimensions :: Vector3D }.

前1:

data Shape
    = Sphere { name :: String, position :: Vector3D, radius :: Double }
    | Prism { name :: String, position :: Vector3D, dimensions :: Vector3D }
Run Code Online (Sandbox Code Playgroud)

前2:

data Sphere = Sphere { name :: String, position :: Vector3D, radius :: Double }
data Prism = Prism { name :: String, position :: …
Run Code Online (Sandbox Code Playgroud)

oop polymorphism haskell functional-programming list

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

如何提高多参数的类似函数的可读性?

我做了这个功能:

-- Generates multiple random values
randoms :: (Random a) => StdGen -> Int -> a -> a -> ([a], StdGen)
randoms rndGen nbrsCount min max = randomNbrs' nbrsCount min max ([], rndGen) where
    randomNbrs' rndGen 0 min max cumul = cumul
    randomNbrs' rndGen count min max cumul = randomNbrs' rndGen (count-1) min max (values, snd rndGen') where
        rndGen' = randomR (min, max) rndGen
        values = fst rndGen' : values
Run Code Online (Sandbox Code Playgroud)

而且难以阅读.因为我是Haskell的新手,所以我无法找到如何提高其可读性.如何使这更容易阅读和更简洁?

haskell functional-programming readability

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

D2DERR_RECREATE_TARGET错误是否真的意味着我必须跟踪渲染目标创建的所有内容?

我每小时多次随机获取此错误(D2DERR_RECREATE_TARGET),在阅读该错误后,我似乎无法避免它.我使用的是SharpDX,它是"一个在.Net平台下提供完整DirectX API的开源项目".

根据microsoft的文档:"Direct2D通过从EndDraw方法返回错误代码D2DERR_RECREATE_TARGET来指示丢失的设备.如果收到此错误代码,则必须重新创建渲染目标和所有依赖于设备的资源."

这是否真的意味着我需要跟踪渲染目标创建的每个依赖于设备的资源(有很多!)并停止使用或者我错了吗?或者也许这里有人知道解决这个错误的方法?

c# c++ directx direct2d sharpdx

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