的函數聲明常量我有這些代碼什麼是最好的,以及如何在C++
#include <iostream>
using namespace std;
class Ex;
class Exx;
class Ex {
public:
int _val;
int const *_p_val;
void setPtrVal(int * const &val) {
_p_val=val;
}
};
class Exx {
public:
Ex const *_ex;
void setEx(Ex const &ex)
{
_ex=&ex;
}
};
int main()
{
Ex x;
int i=10;
x.setPtrVal(&i);
Exx xx;
xx.setEx(x);
int y=20;
cout<<*(xx._ex->_p_val)<<endl;
x.setPtrVal(&y);
cout<<*(xx._ex->_p_val)<<endl;
cout<<*x._p_val<<endl;
return 0;
}
1:你可以看到,防爆X不防爆類的常量。和Ex const * _ex;是一個指針,指向只有出現常量。爲什麼以上的一切都好?
2:常量在void setEx(Ex const & ex)只是意味着你不能在函數體中修改ex?
3:如果我想要類似上面的原型(假設爲安全原因),如何修復成員指針變量的setter函數?
好的。如果Ex const * _ex;變成Ex * _ex;所以,在setter函數中,我想要一個原型不會修改參數對象,就像上面一樣。功能體如何成爲?
你的問題不是很清楚 – davids
好的。我更新了我的最後一個問題 – quano1