所以我有:
foo.h
#ifndef FOO_H
#define FOO_H
extern int bar;
void change_bar_value(const int& value);
#endif
檔案
#include "foo.h"
int bar = 10;
void change_bar_value(const int& value)
{
bar = value;
}
和main.cpp
#include "foo.h"
int main()
{
bar = 20;
change_bar_value(20);
}
所以,我想,你不能direcly改變bar的main.cpp,但你可以叫改變的值的函式bar。那么我該怎么做呢?
uj5u.com熱心網友回復:
“不要成功extern”是顯而易見的答案,也是通常首選的解決方案。
如果您非常希望某些東西是全域可讀但不可寫的,請使用 const 參考為其別名。
(并且不要通過常量參考傳遞原語 - 這是一種毫無意義的悲觀化。)
foo.h:
extern const int& bar;
void change_bar_value(int value);
foo.cpp:
static int local_bar;
const int& bar = local_bar;
void change_bar_value(int value)
{
local_bar = value;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/322669.html
