我已經在我的.h和.cpp文件中有一個構造函數,它需要一些參數,但我也需要一個默認參數,我不知道如何做,因爲我嘗試編譯的方式,但是當我運行我的時候出現錯誤testfile的。 這是我的.h文件C++默認構造函數有問題嗎?
public:
Class();
Class(const std::string &, const int)
void getInfo();
std::string listItem();
private:
std::string name;
int quantity;
這是我的.cpp文件
Class::Class()
: name(0), quantity(0)
{
Class::Class(const string &nam, const int quant)
: name(nam),quantity(quant)
{
}
void Class::getInfo()
{
cout << "Enter Name: ";
cin >> name
cout << "Enter quantity: ";
cin >> quantity;
}
string Class::listItem()
{
ostringstream outputString;
outputString << getName() << getQuantity();
return outputString.str();
}
這是我測試的部分造成麻煩:
const int shortList = 2;
array<Class*, shortList> newList;
for (int i=0; i< 2; i++){
Class *p = new Class();
p->getInfo();
newList[i] = p;
}
cout << "newList contains: " << endl;
for (Class* p : newList)
cout << p->listItem() << endl;
我得到:終止叫在拋出'std :: logic_error'的實例之後 what():basic_string :: _ S_construct null無效
它是一個構造函數問題還是它的一些語法錯誤?
非常感謝! – user3348712