嗨,我对对象组合有疑问。CInvoice 类内部需要有一个 CCustomer 对象,所以我创建了一个需要客户的构造函数。
在 Invoice.h 文件中有一行:
CCustomer *customer;
提到的构造函数如下所示:
CInvoice::CInvoice(CCustomer Customer)
{
customer = &Customer;
}
当我尝试在发票上打印客户姓名时,它会返回一些随机字符
CCustomer customer("McDonalds", "Boston, Massachusetts", 4);
CInvoice invoice(customer);
cout << "Customer:" << customer.GetName() << endl; //it prints "McDonalds"
cout << "Invoice.Customer:" << invoice.customer->GetName() << endl; // it prints random characters
我是否正确实现了对象组合?
另外我有一个类 CInvoiceElement 并且有一个关于它的问题。我应该在不创建发票对象的情况下创建发票元素还是相反?哪个更符合逻辑?