菜鸟问题,请各路高手帮帮忙

时间:2022-04-25 20:43:37
#include "iostream"
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();
    }
};

#3


 fe_al_box(float a,float weight,float p),这儿是四个参数呀!

#4


引用 3 楼 xue785920414 的回复:
fe_al_box(float a,float weight,float p),这儿是四个参数呀!

哪里看出四个了`````````````

#5


#include "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();
    }
};

#3


 fe_al_box(float a,float weight,float p),这儿是四个参数呀!

#4


引用 3 楼 xue785920414 的回复:
fe_al_box(float a,float weight,float p),这儿是四个参数呀!

哪里看出四个了`````````````

#5


#include "iostream" 
这里还是用<iostream>好一些吧,不然编译器会不会找起来很费劲