小编Nim*_*ima的帖子

在C++中删除对象

这是我的示例代码:

void test()
{
   Object1 *obj = new Object1();
   .
   .
   .
   delete obj;
}
Run Code Online (Sandbox Code Playgroud)

我在Visual Studio中运行它,它在'delete obj;'的行中崩溃.这不是释放与对象关联的内存的正常方法吗?我意识到它会自动调用析构函数......这是正常的吗?


这是一段代码:

    if(node->isleaf())
    {
        vector<string> vec = node->L;
        vec.push_back(node->code);
        sort(vec.begin(), vec.end());

        Mesh* msh = loadLeaves(vec, node->code);

        Simplification smp(msh);

        smp.simplifyErrorBased(errorThreshold);

        int meshFaceCount = msh->faces.size();

        saveLeaves(vec, msh);

        delete msh;
    }
Run Code Online (Sandbox Code Playgroud)

loadleaves()是一个从磁盘读取网格并创建一个Mesh对象并返回它的函数.(想想vec并且node->code只是有关要打开的文件的信息)

我应该删除该delete msh;线路吗?

c++ memory-management object new-operator

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

如何调试Django单元测试?

我有一个Django单元测试,我想在其中放置print语句用于调试目的,但显然django正在抑制它们.我怎样才能打印变量的值?我可能能够破解断言等,但想知道人们如何做到这一点.

python django debugging unit-testing django-unittest

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

删除对象

首先,当你想释放分配给C++对象的内存时,首选哪一个?显式调用析构函数还是使用delete?

Object* object = new Object(...);
...

delete object;
Run Code Online (Sandbox Code Playgroud)

要么

object->~Object();
Run Code Online (Sandbox Code Playgroud)

第二,delete运算符是否隐式调用析构函数?

c++ memory-management object

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

类之间的转换

假设我们有一个名为A的类和另一个名为B.的类,我们想要一个将A转换为B的转换方法.

从软件架构的角度来看,哪一个更受青睐?

  1. A.export()
  2. B.import()
  3. 写一个转换器类,即convert(A, B)Convert(A)或...

如果语言很重要,我正在使用C++

c++ architecture

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