Итак, lista_vendas::novaVenda
должен вызвать lista_produto::escolheProduto
.
Чтобы вызвать lista_produto::escolheProduto
, вам нужен объект lista_produto
. Откуда вы собираетесь взять этот lista_produto
объект?
На самом деле это можно сделать только тремя способами. Я не знаю, какой путь вам подходит, но я перечислю их, и вы сможете решить.
1) Имейте lista_produto
глобальную переменную , глобальный список продуктов. Затем lista_vendas::novaVenda
может использовать глобальный lista_produto
для вызова lista_produto::escolheProduto
. Это простое решение, но глобальные переменные по праву считаются плохим стилем. Это также означает, что ваша программа может иметь только один список продуктов, это проблема? Подумайте внимательно, прежде чем пробовать это решение.
2) Используйте lista_produto
как переменную-член из lista_vendas
или no_vendas
. Я предполагаю здесь, но, возможно, что-то вроде этого
class no_vendas
{
public:
unsigned int codigoVenda, dia, mes, ano, numeroItens;
double precoTotal;
lista_produto productList; // list of products
no_vendas* proxi; //referencia para o proximo no
};
Теперь у каждого поставщика есть список продуктов, что имеет смысл. Итак, lista_vendas::novaVenda
теперь имеет доступ к lista_produto
в каждом no_vendas
и может использовать это для вызова lista_produto::escolheProduto
. Если это имеет смысл, то это, вероятно, лучшее решение.
3) Передайте lista_produto
в качестве параметра от до lista_vendas::novaVenda
. Вот так
void novaVenda(unsigned int codigoVenda, lista_produto* productList);
Итак, какой бы код не вызвал lista_vendas::novaVenda
, он должен также предоставить lista_produto
, который ему нужен.
Как я уже сказал, я не знаю, какая из этих возможностей верна, потому что я не знаю, что вы пытаетесь сделать (и я не говорю по-испански sh). Но это проблема отношений между вашими разными объектами. Вам решать разработать свои классы, чтобы они могли получить доступ к различным объектам, которые им нужны для работы.
Вы упомянули наследование в своем заголовке, но это не похоже на то, что нужно что делать в этом случае.