之前在c++帖子里面就有朋友指出關于只讀變數的問題。事實上c++沒有這么方便,只能通過函式來解決這樣的。
如:
struct SProto
{
private:
int32 id_;
int32 idx_;
int32 day_;
int32 plan_;
int32 need_;
int32 x_;
int32 y_;
}
這樣的配置式,又不想外部可以改變其值,那么得做多少個函式?如果成員更多呢?
所以c++還有值得去改變的地方,就是增加一個方式,外部只讀方式,這樣會讓使用者省去撰寫讀取函式的時間。
uj5u.com熱心網友回復:
你可以在get函式里面帶一個引數,由引數選定獲取哪個成員。key value的方式
uj5u.com熱心網友回復:
不想自己寫,一般編譯器都有自己補充代碼的功能,點擊變數,然后鍵盤按ALT+ENTER會出現智能視窗,選擇填充就行,或者像樓上所說,通過一個函式,構造一個映射表,也能輸出uj5u.com熱心網友回復:
這個建議很值得思考
uj5u.com熱心網友回復:
public:const
或者直接把這段記憶體映射出去。
uj5u.com熱心網友回復:
現在編譯器的功能和強大的uj5u.com熱心網友回復:
可以用宏定義#define pridata(type,name,refix) \
privata:\
type name=value;\
public:\
type refix##name ()\
{\
return name;\
}
uj5u.com熱心網友回復:
這樣就得一堆if else
目的是能更省事,只是目前不支持
uj5u.com熱心網友回復:
宏的確能比if else 省一點點事,但是沒達到更省事的目的。謝謝回復
uj5u.com熱心網友回復:
直接寫成const不就可以了class A {
public:
const int a;
const int b;
A(int m, int n):a(m),b(n) {
}
};
int main() {
A a1{ 1,2 };
a1.a = 10; //錯誤 C3892 “a1” : 不能給常量賦值 Project31 D : \Documents\Tencent Files\393121937\FileRecv\1.cpp 21
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/285111.html
標籤:C++ 語言
下一篇:這個程式怎么無法顯示圖形化界面