Eu tenho uma hierarquia que tem __...........................Consumidor............................. __|____________________|____________________| Empresa........________Particular...............______Menus __|_________|__________|____________| Grande___Pequena___Domestico____Comercial As linhas horizontais são só para encher espaço, os pontos e | é que representam ligações. (desculpem a confusão) Na classe Menus tenho um "vector<Consumidor*> consumi" para guardar uma rede de diferentes tipos de consumidores. Na classe Consumidor tenho uma função "void setNome(string name) {nome = name;}" Na classe Menu utilizo a seguinte sintaxe: ... int id = 1; //para propósito de demonstração string name; cout << "Nome:" getline(cin,name); (consumi.at(id-1)).setNome(name); ... o compilador acusa ".setNome is not a type" Só encontrei explicações para casos mais complicados, que não consegui compreender. O meu objectivo é que a classe Menus tenha acesso a tudo de todas as outras classes, mas não sei como devo organizar a hierarquia. Agradecia uma explicação e, se tiverem, conselhos.