using namespace std;
class fe_box//方形铁盒
{
private:
char colour;//颜色
float a;//边长
public:
fe_box(char colour,float a)
{
this->colour=colour,this->a=a;
cout<<colour<<endl<<a;
}
void show()
{
float V;
V=a*a*a;
cout<<"the colour is:"<<colour<<endl<<"体积为:"<<V<<endl;
}
~fe_box()
{
}
};
class al_box//方形铝盒
{
private:
float p;//密度
float weight;//重量
public:
al_box(float p,float weight)
{
this->p=p,this->weight=weight;
}
void show()
{
cout<<"密度为:"<<p<<endl<<"重量为:"<<weight<<endl;
}
};
class fe_al_box:public fe_box,public al_box//合金盒
{
public:
fe_al_box(float a,float weight,float p):fe_box(a),al_box(weight,p)
{
}
void showAL()
{
cout<<"合金盒的参数"<<endl;
fe_box::show();
al_box::show();
}
};
void main()
{
fe_al_box AL(3,56,6);
AL.showAL();
}
出现这样的错误:Cpp1.cpp(49) : error C2664: '__thiscall fe_box::fe_box(const class fe_box &)' : cannot convert parameter 1 from 'float' to 'const class fe_box &'
Reason: cannot convert from 'float' to 'const class fe_box'
No constructor could take the source type, or constructor overload resolution was ambiguous
执行 cl.exe 时出错.
请问怎样改才正确.谢谢了.
5 个解决方案
#1
参数类型不对
#2
class fe_al_box:public fe_box,public al_box//合金盒
{
public:
fe_al_box(float a,float weight,float p):fe_box('r',a),al_box(weight,p) 少一个颜色参数 找不到构造函数了 就找到拷贝构造 但是无法完成转型
{
}
void showAL()
{
cout <<"合金盒的参数" <<endl;
fe_box::show();
al_box::show();
}
};
{
public:
fe_al_box(float a,float weight,float p):fe_box('r',a),al_box(weight,p) 少一个颜色参数 找不到构造函数了 就找到拷贝构造 但是无法完成转型
{
}
void showAL()
{
cout <<"合金盒的参数" <<endl;
fe_box::show();
al_box::show();
}
};
#3
fe_al_box(float a,float weight,float p),这儿是四个参数呀!
#4
哪里看出四个了`````````````
#5
#include "iostream"
这里还是用<iostream>好一些吧,不然编译器会不会找起来很费劲
这里还是用<iostream>好一些吧,不然编译器会不会找起来很费劲
#1
参数类型不对
#2
class fe_al_box:public fe_box,public al_box//合金盒
{
public:
fe_al_box(float a,float weight,float p):fe_box('r',a),al_box(weight,p) 少一个颜色参数 找不到构造函数了 就找到拷贝构造 但是无法完成转型
{
}
void showAL()
{
cout <<"合金盒的参数" <<endl;
fe_box::show();
al_box::show();
}
};
{
public:
fe_al_box(float a,float weight,float p):fe_box('r',a),al_box(weight,p) 少一个颜色参数 找不到构造函数了 就找到拷贝构造 但是无法完成转型
{
}
void showAL()
{
cout <<"合金盒的参数" <<endl;
fe_box::show();
al_box::show();
}
};
#3
fe_al_box(float a,float weight,float p),这儿是四个参数呀!
#4
哪里看出四个了`````````````
#5
#include "iostream"
这里还是用<iostream>好一些吧,不然编译器会不会找起来很费劲
这里还是用<iostream>好一些吧,不然编译器会不会找起来很费劲