Я пишу часть клиентской базы данных, которая занимается привлечением новых клиентов и продажей им товаров. В «Customer.h» у меня есть структура:
struct Customer {
String name;
int bottles;
Customer(String);
Customer(void) { name = "__invalid__"; }
};
У меня есть класс в файле «CustomerDB.h»
class CustomerDB {
private:
Customer* data; // an array of Customer objects (allocated on the heap)
int capacity; // size of the array on the heap
int length; // number of valid customers actually in the array
public:
CustomerDB(void);
В «CustomerDB» есть конструктор. cpp "
Customer::Customer(string name) {
this->bottles = 0;
this->name = name;
}
Я создаю * объект в другой функции (которая находится в« CustomerDB. cpp »)
Customer& CustomerDB::operator[](string name) {
Customer Customer(name);
return Customer;
И есть объект CustomerDB:
CustomerDB database;
(который находится в другом cpp файле, который обрабатывает покупки).
Строковый ввод работает. Объект создан. Там нет никаких проблем. Итак, у меня есть 2 проблемы, одна из которых связана с другой.
- Мне нужно создать новый объект нелокального клиента в этой функции (хранится в нелокальной базе данных) и
- Верните ссылку на него. Но конструктор, который я только что вызвал, не дает мне ссылки. Он просто делает это так, как надо. Я непреднамеренно создаю локальный объект вместо того, который добавлен в «основную» базу данных. В результате в ссылке нет ничего полезного.
Если я попробую return Customer;
, будет написано, что «Клиент не ссылается на значение».
Любая помощь / совет приветствуются .