I entender que de acordo com o C ++ especificação não existe tal coisa como um "método", e alguns (muitos? A maioria?) Programadores C ++ considerar "método" para ser um Java-ismo. Por outro lado, mesmo em um fórum C ++, as pessoas parecem falar sobre métodos sem se contorcer. Estou procurando convenções conhecidas ou práticas comuns relacionadas a essa terminologia.
Estou documentando uma API que possui as versões C ++ e Java. Os desenvolvedores mantiveram os nomes de classe e método / função de membro os mesmos entre os dois, provavelmente por conveniência em portar e testar. Por esse motivo, parte do que precisa ser documentado sobre essas APIs fica "acima" da escolha do idioma; Eu preciso ser capaz de falar em geral sobre Foos e Bars, com seus métodos baz () e mumble () ...?
Se eu falar sobre métodos que os programadores de Java consideram natural e, aparentemente, os programadores de C ++ provavelmente entenderão, mas alguns o considerarão incorreto. Minha pergunta é: quão hediondo isso é na prática ? Como as funções de membro do C ++ são abordadas convencionalmente em contextos "OOP gerais", em oposição aos específicos do C ++? Existe uma maneira melhor de falar sobre funções de membro de uma maneira que não esteja incorreta para nenhum dos idiomas? ("Funções de membro" é um pouco detalhada).
Esta não é uma pesquisa de opinião; Estou tentando determinar se existem convenções reais ou práticas comuns para resolver esse problema.
Estou ciente dessa pergunta , mas é sobre OOP em geral e não pergunta sobre idiomas específicos.
fonte
Respostas:
Por que você não inclui uma explicação (como fez na sua pergunta) na parte introdutória da documentação, por exemplo, uma seção de Convenções ? Em seguida, você pode explicar que o termo "método", conforme usado na documentação, se refere ao sentido genérico do método (Java), função membro (C ++), ... já que a documentação se aplica a todas as implementações.
fonte
Bem, você não será executado por isso.
A reclamação no mundo C ++ não é de correção pedante: é de ambiguidade. Existem tantos tipos diferentes de "métodos" por aí, dependendo do domínio que você está falando, que muitos de nós preferem seguir a terminologia padrão para evitar mal-entendidos mais tarde. Isso significa, grosso modo, "função estática / [não estática] [pura] virtual / [não virtual] membro / [livre]".
Se você escrever "método" em sua documentação, alguns programadores de C ++ podem reclamar que não está realmente claro do que você está falando, ou se preocupar que, se você não estiver familiarizado com esta convenção de C ++, que outros estão faltando?
Mas tenho certeza de que existem milhões de programadores profissionais em C ++ que não fazem ideia de que isso é algo. É um grande mundo velho.
Você não será executado por isso.
fonte
Eiffel os chama de Rotinas ou Recursos , o C ++ os chama de Funções de Membro e (quase) todas as outras linguagens OO já criadas em toda a história da computação, antes e depois do C ++ os chamar de Métodos , de modo que esse termo geralmente geralmente deve ser entendido mesmo por C ++ (e Eiffel) programadores, a menos que eles realmente nunca ouvi falar de Simula, Smalltalk, Auto, Objective-C, Novilíngua, Java, C #, VB.NET, PHP, Python, ruby, ECMAScript / JavaScript, Scala, CoffeeScript, ...
fonte