基本上,我有一个名为VisaMux的类和一个名为MuxPath的类.MuxPath有一个VisaMux私有实例变量.我希望MuxPath的构造函数在不调用空的VisaMux()构造函数的情况下为给定的VisaMux对象分配实例变量.
5 MuxPath::MuxPath(const uint& Clk_sel, const uint& Lane_sel, const VisaMux& Mux){
6 clk_sel = Clk_sel;
7 lane_sel = Lane_sel;
8 mux = Mux;
9 }
Run Code Online (Sandbox Code Playgroud)
此代码导致错误:
MuxPath.cpp:5: error: no matching function for call to ‘VisaMux::VisaMux()’
VisaMux.h:20: candidates are: VisaMux::VisaMux(const std::string&, const uint&, const uint&, const std::vector<VisaLane, std::allocator<VisaLane> >&, const std::vector<VisaResource, std::allocator<VisaResource> >&)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样,它在第一行(第5行)出错,所以似乎某些const VisaMux&Mux正在调用不存在的VisaMux().如果我只使用VisaMux Mux,也会发生这种情况.
我不希望它为VisaMux调用一个空的构造函数,因为我希望只通过传递构造函数所有必需的参数来创建VisaMux.
我怎样才能做到这一点?