小编rkg*_*ghz的帖子

LabVIEW VI的版本控制如何工作?

有没有人有版本控制和LabVIEW的经验?由于LabVIEW VI不是基于文本的,它是如何工作的?我想使用git,但我有几个问题:

  • 在提交更改时,git是否识别VI中的差异或是否用新的文件替换整个文件?这会导致存储库的大量扩展吗?

  • 是否有可能合并VI的不同版本?

  • 或者是否有适用于LabVIEW的版本控制?

git version-control labview

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

分配运算符更改分配对象的值

我实现了一个类来处理一些外部功能(例如,另一个DLL的功能)。这个函数给了我一个可以用作句柄的整数。这是我的代码的重要部分:

MyClass
{
public:
    MyClass() { 
        handle = getHandlefromExternalFunction();
    }
    ~MyClass {
        if(handle>0)
            freeHandleFromExternalFunction(handle);
    }
    MyClass& operator=(MyClass& other) {
        freeHandleFromExternalFunction(handle);
        handle = other.handle
        other.handle = 0; //Is this a bad idea?
    }
private:
    int handle;
}
Run Code Online (Sandbox Code Playgroud)

在我的主要功能中,我有一个myClass对象。在某些时候,我正在使用赋值运算符来更改对象的值:

MyClass object;
//some code
object = MyClass();
Run Code Online (Sandbox Code Playgroud)

分配后,创建的对象MyClass()将立即销毁,因为它超出了范围。但是我不想freeHandleFromExternalFunction()被调用handle,因为我在分配的对象中使用它。因此,我在赋值运算符中更改了赋值对象的值handle = 0。我的问题是:这是个坏主意吗?有谁能更好地解决我的问题?

c++ destructor assign

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

将矢量转换为数组.如何释放内存?

我在双打的向量转换成double数组中所看到这里:

不同的是,我想将指针a作为函数参数返回:

void getArray(double* a)
{
    std::vector<double> v;
    a = &v[0];
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,什么时候内存a被解除分配?或者我必须自己打电话delete[] a,这似乎很奇怪,因为我没有分配内存new.我已经阅读了上述答案的评论,但我仍不清楚.

c++ arrays pointers vector

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

标签 统计

c++ ×2

arrays ×1

assign ×1

destructor ×1

git ×1

labview ×1

pointers ×1

vector ×1

version-control ×1