2014-09-11 47 views
0

我是一名學生。假設我希望能夠執行my_string.reverse();.我不想看到實際的代碼來反轉一個字符串,我只想看看這個函數是如何實現的。如何爲字符串創建我自己的點運算符函數?

一個側面的問題:爲什麼我從來沒有見過這種點操作符與類型如int或char一起使用,這是不可能的?

+0

你是什麼意思「我自己的點運算符功能」? – Maroun 2014-09-11 06:09:21

+0

我不熟悉正確的術語。我的意思是「.some_function_i_created();屬於字符串類型」。 – 2014-09-11 06:11:57

+0

你應該通過[基礎教程](http://www.cplusplus.com/doc/tutorial/)。 – Maroun 2014-09-11 06:13:02

回答

2

您不能超載成員訪問操作符;並且您不能將成員添加到已定義的類中。如果my_string的類型沒有reverse成員,並且您不能(或不想)將其添加到類定義中,那麼您無法提供任何語法來提供該語法。

如果你想編寫一個函數來操縱一個類而不改變類的定義,它必須是一個非成員函數,被稱爲例如。 reverse(my_string)

爲什麼我從來沒有見過用這種類型的操作符(如int或char),這是不可能的?

不,它不是。該語言只爲類類型定義該運算符,並且不允許它被重載。

相關問題