Когда я запускаю свою программу он падает со следующей ошибкой:соиЬ Образовавшееся Terminate вызывается после метания экземпляра «станд :: length_error»
terminate called after throwing an instance of 'std::length_error' what(): basic_string::_S_create Aborted (core dumped)
я получаю, что с помощью следующего кода:
#include <iostream>
#include <string>
using namespace std;
class Cargo
{
string nm;
public:
Cargo(const string& name): nm(name)
{
}
Cargo& operator=(const Cargo&)
{
cout<<"inside Cargo::operator=()"<<endl;
return *this;
}
friend ostream& operator<<(ostream& os, const Cargo& ca)
{
return os<<"Cargo name: "<<ca.nm;
}
};
class Truck
{
Cargo b;
string name;
public:
Truck(const string& nm):b("Cargo" + name)
{
name = nm;
}
void print()
{
cout << "name: " << name << endl;
cout << b << endl;
}
};
int main()
{
Truck a("Truck a"), b("Truck b");
a = b;
a.print();
b.print();
}///~:
В этот момент 'b (« Cargo »+ name)' в конструкторе 'Truck',' name' не инициализируется. –
@RichardCritten, tks, я получил его – husker