0
我试图在很长一段时间内解决我的第一个编译问题,我认为这是最后一个障碍。在构造函数调用期间将此对象传递给对象中的对象
我想在我的设计中创建这种类型的层次结构。
class chin_
{
private:
charon_* engine;
public:
chin_();
chin_(charon_ &handle)
{
engine = handle;
}
~chin_();
};
//////////////
class charon_ {
private:
chin_ engine_input;
public:
charon_(){
engine_input = chin_(this);
}
~charon_();
};
我得到的是告诉我有是呼叫没有匹配功能
'chio::chin_::chin()'
错误它也说,请注意,只有当我将构造函数更改为charon时&
public:
chin_(const charon_ &handle)
{
engine = handle;
}
sys/../headers/chio.h:104:5: note: no known conversion for argument 1 from ‘charon::charon_* const’ to ‘const charon::charon_&’
当我使用*而不是&时,我得到了这个,这更令人困惑。
sys/../headers/chio.h:104:5: note: chio::chin_::chin_(const charon::charon_*)
sys/../headers/chio.h:104:5: note: candidate expects 1 argument, 0 provided
我试过这个和那个,我觉得它可能是超级简单的东西。我尝试将我的代码直接与我发现的例子进行匹配,所以我不知道还有什么我应该尝试的,我希望能够自己找出这些东西。我只是没有任何运气。
编辑: 我更新代码,但我留下了更新的底部的错误。
sys/chin.cpp:19:14: error: cannot convert ‘charon::charon_’ to ‘charon::charon_*’ in assignment
它把我带到这个代码
chin_::chin_(charon_ &handle) {
engine = handle;
}
引擎定义为 charon_ *引擎;并处理似乎是一个地址,应该落在原地,但事实并非如此。我想我没有正确使用它。
我这样做,取得了空的构造,它摆脱了“sys/chin.cpp:19:14:错误:无法在作业中将'charon :: charon_'转换为'charon :: charon_ *' – 2012-04-15 17:00:51
一个变量指向一个指针,你必须使用&的地址。像这样: pointerToEngine =&engine; – 2012-04-15 17:01:47
如果您尝试分配一个错误,但现在还剩一个错误 – 2012-04-15 17:03:25