小编Luc*_*cas的帖子

在复制构造函数中复制唯一指针数组的内容

我的类包含一个指向数组的唯一指针。当调用复制构造函数时,我希望该类创建自己的唯一指针数组,并仅复制旧唯一指针数组的内容。我不断收到关于从 const 值转换的错误,并且我不知道如何解决它。

我的指针在 private 下声明如下:

std::unique_ptr<Manager[]> managers;
Run Code Online (Sandbox Code Playgroud)

我计划只循环遍历数组并手动复制,所以我制作了这个复制构造函数:

Restaurant::Restaurant(const Restaurant &_r)
{
    Manager *_managers = _r.managers;
    for (int i = 0; i < MAX_MANAGERS; i++)
    {
        managers.get()[i] = _managers[i];
    }
}
Run Code Online (Sandbox Code Playgroud)

它在这一行给出了 const 转换错误:

Manager *_managers = _r.managers;
Run Code Online (Sandbox Code Playgroud)

我只想制作一个深拷贝。我该如何去做才能使这项工作成功?

c++ smart-pointers unique-ptr

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

JavaCV/OpenCV:cvLoadImage无法正常工作

我安装了JavaCV/OpenCV库,我遇到了基本示例代码的问题.

根据我看过的几个例子,这段代码应该加载一个图像:

IplImage image = cvLoadImage("C:\\img.jpg");
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时,我得到一个"找不到符号"的错误.

由于这是我第一次使用它,我不确定我是否搞砸了安装.

根据最新的JavaCV自述文件,我确实拥有正确版本的OpenCV.我还导入了所有JavaCV jar文件.据我所知,我也正确设置了所有路径.

谁知道问题是什么?

编辑:

完整代码:

import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import java.io.File;


public class demo {

    public static void main(String[] args) 
    {
        IplImage image = cvLoadImage("C:\\img.jpg");

        final CanvasFrame canvas = new CanvasFrame("Demo");
        canvas.showImage(image);
        canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
    }

}
Run Code Online (Sandbox Code Playgroud)

我尝试运行它时出错:

线程"main"中的异常java.lang.RuntimeException:无法编译的源代码 - 错误的sym类型:javacv.demo.main中的cvLoadImage(demo.java:17)

Java结果:1

似乎它声称cvLoadImage不接受字符串作为参数.

java javacv

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

标签 统计

c++ ×1

java ×1

javacv ×1

smart-pointers ×1

unique-ptr ×1