我的类包含一个指向数组的唯一指针。当调用复制构造函数时,我希望该类创建自己的唯一指针数组,并仅复制旧唯一指针数组的内容。我不断收到关于从 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)
我只想制作一个深拷贝。我该如何去做才能使这项工作成功?
我安装了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不接受字符串作为参数.