原因:當一個const對象調用其非const成員函數(shù)時辅鲸,編譯器不能保證其函數(shù)不修改對象內部數(shù)據(jù)掰派,因此回報錯。
解決:將函數(shù)聲明為const
在寫一個string簡單的類時康栈,想把該類主要用于函數(shù)傳遞笙瑟。
因此免不了使用const &
這樣傳進去的函數(shù)楼镐,就不能使用非const的成員函數(shù)癞志。
如上圖往枷,size()
函數(shù)不是const函數(shù),而傳入?yún)?shù)是const &
:
對一個const對象凄杯,調用其非const函數(shù)错洁,報錯方式如上圖所示。
需要.size()
戒突,.c_str()
都是const的函數(shù)屯碴。
如果成員函數(shù)不會改變對象內部狀態(tài),那就聲明為const對象膊存。