Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
557 views
in Technique[技术] by (71.8m points)

c++ - no appropriate default constructor available error

here is my code:

class package
{
protected:
    string name;
    string city;
    string state;
    int zip;
    double weight;
    double costPerOunce;

public:

    package::package(string Name, string City, string State, int Zip, double Weight, double CostPerOunce):
      name(Name), city(City), state(State),
      zip(Zip), weight(Weight), costPerOunce(CostPerOunce)
      {

      }
      double calculateCost()
    {
        return (weight * costPerOunce);
    }

};
class twoDayPackage: public package
{
protected:
    double flatFee;
public:
    twoDayPackage::twoDayPackage(double FlatFee):
      flatFee(FlatFee)
      {

      }
    double calculateCost()
    {
        return (weight * costPerOunce) + flatFee;

    }
};
int main()
{


    system ("pause");
    return 0;
}

i try to run this code and the error i get is as follows: error C2512: 'package' : no appropriate default constructor available

the error has something to do with inheritance of the base class constructor but i don't know exactly why the code isn't running. please help me.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
twoDayPackage::twoDayPackage(double FlatFee):
  flatFee(FlatFee)

is calling the base constructor package(), because you haven't specified anything else.

Add a line package::package(){}; in class package :)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...