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.