有沒有一種方法可以從C++中的主類中包含的另一種方法調用非靜態類成員方法?如果是這樣,代碼將是什麼樣子?從另一種方法調用非靜態成員方法
問題是,我無法將此特定方法聲明爲靜態方法,因爲它使用同一類中的其他方法,如果使其中一個靜態方法不起作用,則該方法不起作用。
我試圖使用方法:
MyClass::myClassMethod();
從主類中的方法,但它給我的錯誤:非靜態成員引用必須是相對於特定對象。
爲了澄清,myClassMethod()使用內等MyClass的其他方法:
void myClassMethod() {
...
anotherClassMethod();
}
,所以如果我是做myClassMethod靜將與調用anotherClassMethod干擾()。
在閱讀已發佈的答案中的問題和評論之後,獲得關於您正在嘗試做什麼的更多信息仍然很有用。 myClassMethod本身是靜態的嗎?它從哪裏被調用?你能改變方法的參數嗎?你被分配的問題的目標是什麼? – tmpearce 2012-03-15 04:09:20
好像你真的需要想一想你可能想在這裏做什麼樣的行爲。與靜態和非靜態方法的關鍵區別在於後者需要訪問任何一個類的數據,或者可能進行內部完成相同的虛擬調用。如果'myClassMethod'調用非靜態的anotherClassMethod',那麼是否需要這樣做?如果沒有,請將它們設爲靜態。如果是這樣,那麼當該方法嘗試訪問數據時,您希望發生什麼? – Keith 2012-03-15 04:33:24