大約去年我做了Java(Android)編程,並且在那之前做過C#。大約一個月後,我正在學習C++,並且因爲我結束了朋友,繼承和其他事情,所以我得到了一些問題,因爲直到現在我還沒有使用過它:是否可以在C++中更改程序本身的代碼?
有沒有辦法之後再定義朋友,因爲他們需要交換信息或其他東西。例如有沒有辦法在以後定義一個'隨機'朋友?你需要什麼?函數的名稱或類的地址?
還是有一般改變從程序本身代碼的方式,這樣纔不會有必要重新編譯?例如創建新的功能,類還是如此?
我會約有關的任何答案很開心。
大約去年我做了Java(Android)編程,並且在那之前做過C#。大約一個月後,我正在學習C++,並且因爲我結束了朋友,繼承和其他事情,所以我得到了一些問題,因爲直到現在我還沒有使用過它:是否可以在C++中更改程序本身的代碼?
有沒有辦法之後再定義朋友,因爲他們需要交換信息或其他東西。例如有沒有辦法在以後定義一個'隨機'朋友?你需要什麼?函數的名稱或類的地址?
還是有一般改變從程序本身代碼的方式,這樣纔不會有必要重新編譯?例如創建新的功能,類還是如此?
我會約有關的任何答案很開心。
你想要做什麼是不可能的C++。如果您需要這種動態更改程序的方式,最好使用像Lisp這樣更動態的高級語言。
friend
s只能通過修改其源代碼被添加到一個類。這是一個功能,而不是一個錯誤。
有以這樣的擴展功能兩種方式。
第一種解決方案比較容易,這取決於您希望賦予這些腳本多少控制權。
我明白了。所以如果我想修改它的代碼,主程序需要重啓。或者我可以創建第二個實例,更改第一個實例,反之亦然? – blueBurningCoder 2014-09-21 09:36:04
好吧,我可以創建一個修改源代碼的實例,編譯新的並關閉自己?我需要一個包含所有臨時內容的外部文件,但它會起作用嗎? – blueBurningCoder 2014-09-21 09:32:23
你試圖做的事聽起來很奇怪。你可能應該退一步,並且看看你的問題。符合C++精神的更好的解決方案肯定會出現。如果您認爲在運行時修改程序是一件很酷的事情,而您只是想*做到這一點,那麼恐怕您必須離開C++,轉而採用旨在執行此操作的語言。 C++不是。 – 5gon12eder 2014-09-21 09:37:55
Eh不,我其實不想這樣做,但是我想知道它是否(理論上)是可能的,以瞭解它的複雜性,以便進一步編程 – blueBurningCoder 2014-09-21 09:57:51