C'è un modo per chiamare un metodo membro della classe non statico da un altro metodo contenuto nella classe principale in C++? Se sì, come sarebbe il codice?Chiama un metodo membro non statico da un altro metodo
Il problema è che non posso dichiarare questo metodo specfico come statico, perché utilizza altri metodi all'interno della stessa classe che quindi non funzionano se faccio l'uno statico.
che sto cercando di utilizzare:
MyClass::myClassMethod();
da un metodo all'interno della classe principale, ma mi dà l'errore: un punto di riferimento non membro statico deve essere relativo ad un oggetto specifico.
Per chiarire, myClassMethod() utilizza altri metodi all'interno MyClass come:
void myClassMethod() {
...
anotherClassMethod();
}
quindi se dovessi fare myClassMethod statica sarebbe interferire con chiamando anotherClassMethod().
Dopo aver letto la domanda e i commenti nelle risposte già pubblicate, sarebbe comunque utile avere ulteriori informazioni su ciò che si sta tentando di fare. 'MyClassMethod' è statico? Da dove viene chiamato? Puoi cambiare gli argomenti per il metodo? Qual è l'obiettivo del problema che ti è stato assegnato? – tmpearce
Sembra che tu abbia davvero bisogno di pensare a quale comportamento potresti desiderare qui. La differenza principale con i metodi statici e non statici è che quest'ultimo deve accedere a entrambi i dati di classe, o forse effettuare chiamate virtuali che internamente fanno più o meno lo stesso. Se 'myClassMethod' chiama' anotherClassMethod' che non è statico, è necessario farlo? In caso contrario, renderli statici. Se sì, allora cosa ti aspetti che accada quando il metodo tenta di accedere ai dati? – Keith