大神门帮我看看 这个错误怎么改


#1
#include<iostream>
using namespace std;
class Box
{public:
    Box();
    Box(int,int);
    int v();
protected:
	int gao;
	int chang;
};
Box::Box(int c,int k)
{
gao=c;
chang=k;
}
int Box::v()
{return(chang*gao);
}
class Box2: public Box
{ public:
   get();
   get(int m,int n);
   int s();
  
};
Box2::get(int m,int n)
{ gao=m;
chang=n;
}
 int Box2::s()
 { return(chang/gao);}
int main()
{while(1){
 int a,b;
 cin>>a>>b;
 Box b1(a,b);
 cout<<b1.v();
 int m,n;
 cin>>m>>n;
 Box2 b2(3,1);
cout<<b2.s();
}
 return 0;
}

E:\C++\Microsoft Visual Studio\test.cpp(41) : error C2661: ‘Box2::Box2’ : no overloaded function takes 2 parameters


#2

Box2没有定义构造函数。


#3

。。。 能把排版弄好点吗?


#4

构造函数是不能继承的, 所以如楼上所说, box2没有定义对应的构造函数, 这个跟java之类的语言不一样

解决办法, 11以前可以挨个申明自己的构造器, 11可以

class Box2: public Box {
public:
    using Box::Box;  //可以使用继承构造器的语法糖
};