小编Dan*_*rch的帖子

为什么这个C++代码会编译?它有什么作用?

我不小心删除了方法名称时遇到了这个问题.代码来自

bool bRet = MethodName(pData, pOutFilename);
Run Code Online (Sandbox Code Playgroud)

bool bRet = (pData, pOutFilename);
Run Code Online (Sandbox Code Playgroud)

但仍然编译?这段代码有什么作用?这是什么意思?它似乎返回true,总是这样(即使pData为null)?

欢迎任何想法!

c c++ syntax

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

如何将模拟设置用于可空类型

我有一个具有可空参数的接口

Result<Notice> List(int offset, int limit, Guid? publicationId, Guid? profileId, DateTime? toDate, ListingOrder order);
Run Code Online (Sandbox Code Playgroud)

这就是我尝试模拟此方法的方式

mockNoticesClient.Setup(c => c.List(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<Nullable<Guid>>(), It.IsAny<Nullable<Guid>>(), It.IsAny<Nullable<DateTime>>(), Data.Notices.ListingOrder.DateDesc)).Returns(dataNotices);
Run Code Online (Sandbox Code Playgroud)

然后在尝试使用该方法时

var results = this.noticesClient.List(0, 100, null, profileId, latestNoticeTime, Data.Notices.ListingOrder.DateDesc);
Run Code Online (Sandbox Code Playgroud)

只要运行此行,尽管会抛出此异常

... threw an exception of type 'System.NullReferenceException' ... {System.NullReferenceException}
Run Code Online (Sandbox Code Playgroud)

我尝试了几种不同的组合,例如在参数中使用带有null的setup,但这也不起作用。我正在使用的是最新版本的Moq 4.0.10827(当前)。

编辑: noticesClient的构造函数采用dataNoticesClient的接口

public Client(Data.Notices.INotices noticesClient)
Run Code Online (Sandbox Code Playgroud)

像这样诱人

mockNoticesClient = new Mock<Data.Notices.INotices>();
noticesClient = new Client(mockNoticesClient.Object);

mockNoticesClient.Setup(c => c.List(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<Nullable<Guid>>(), It.IsAny<Nullable<Guid>>(), It.IsAny<Nullable<DateTime>>(), It.IsAny<Data.Notices.ListingOrder>())).Returns(dataNotices);

mockNoticesClient.Setup(c => c.List(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<Guid?>(), It.IsAny<Guid?>(), It.IsAny<DateTime?>(), It.IsAny<Data.Notices.ListingOrder>())).Returns(dataNotices);
Run Code Online (Sandbox Code Playgroud)

c# testing nullable moq

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

这段代码泄漏了内存吗?我需要解放任何东西吗?C++内存

所以我在C++中编写了一些矩阵类.所以每个矩阵都有一个指向一个名为entries的数组的指针,我不确定我是否正确这样做但是我在子类中重新声明了数组.(我不是C++专家)

这个记忆是否需要免费?我只是用引用的数组覆盖指针吗?任何帮助将不胜感激.谢谢

class Matrix {
protected:
    float* entries;
public:
    int rows;
    int cols;


    Matrix() {
    }
    ~Matrix() {
    }
};

class Matrix4x4 : public Matrix {
    protected:
        float entry[4][4];
    public:

    /* This will create an empty matrix */
    Matrix4x4() {
        //Define the size of the arrays
        rows = 4;
        cols = 4;
        this->empty();
    }
    ...
};
Run Code Online (Sandbox Code Playgroud)

c++ memory free memory-leaks

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

如何在c ++中正确使用虚拟成员函数

我遇到以下代码的问题,重写的虚函数没有执行.不确定我在这里做错了可能是一个愚蠢的错误.无论如何这是一个游戏项目,我有一个看起来像这样的对象数组(核心::数组是一个irrlicht数组,类似于向量数组)

core::array<GameObject> gameTargets;
Run Code Online (Sandbox Code Playgroud)

这是GameObjectZombie 定义

class GameObject {
protected:
    scene::ISceneNode* node;
public:
    int ID;
    int hitpoints;

    GameObject() {
        ...
    };

    void setNode(scene::ISceneNode* inode) {
        ...
    }

    virtual void shot(int dmg) {
        ... [BREAKPOINT HERE]
    }

    scene::ISceneNode* getNode() {
        return node;
    }
};

class Zombie : public GameObject {
public:
    static const enum Animation {
        ZOMBIE_WALK,
        ZOMBIE_HURT,
        ZOMBIE_DIE,
        ZOMBIE_TWITCH,
        ZOMBIE_ATTACK,
        ZOMBIE_IDLE
    };

    //We only want to accepted animated mesh nodes for this object
    Zombie(int hp, scene::IAnimatedMeshSceneNode* inode) { …
Run Code Online (Sandbox Code Playgroud)

c++ oop virtual

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

标签 统计

c++ ×3

c ×1

c# ×1

free ×1

memory ×1

memory-leaks ×1

moq ×1

nullable ×1

oop ×1

syntax ×1

testing ×1

virtual ×1