嗨,我有一個對象組成的問題。 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,並有一個關於它的問題。我是否應該創建發票元素而無需創建發票對象或其他方式?哪個更合乎邏輯?
爲什麼CCustomer *客戶發票的可公開訪問的屬性? – tmaric
稍後我會將其設置爲private。我不是一個有經驗的程序員,我通常從公共成員開始,如果需要的話,可以將它們設置爲私有的。順便說一下,該程序將客戶和發票存儲在SQL-Server數據庫中。您認爲我應該將CCustomer *還是客戶ID傳遞給CInvoice構造函數? – BuahahaXD