主题:typedef的问题
AdditionProblem 和 Queue是我定义的两个类;
主程序中有如下语句
Queue problemQueue;
int myAddend = 100;
AdditionProblem problem(myAddend);
problemQueue.enqueue(problem);
其中
AdditionProblem::AdditionProblem(int maxAddend = 10)
{
.......
}
typedef int QueueElement;
Queue::enqueue(const QueueElement &value)
{
.......
}
此时程序顺利通过。
问:为什么当我直接用int代替QueueElement时,vc2010会报错
error C2664: “Queue::enqueue”: 不能将参数 1 从“AdditionProblem”转换为“const int &”
原因如下: 无法从“AdditionProblem”转换为“const int”
没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
主程序中有如下语句
Queue problemQueue;
int myAddend = 100;
AdditionProblem problem(myAddend);
problemQueue.enqueue(problem);
其中
AdditionProblem::AdditionProblem(int maxAddend = 10)
{
.......
}
typedef int QueueElement;
Queue::enqueue(const QueueElement &value)
{
.......
}
此时程序顺利通过。
问:为什么当我直接用int代替QueueElement时,vc2010会报错
error C2664: “Queue::enqueue”: 不能将参数 1 从“AdditionProblem”转换为“const int &”
原因如下: 无法从“AdditionProblem”转换为“const int”
没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符