我有隻讀變量類(原則從here截取)更改只讀變量如C++中的目標
#include <iostream>
#include "test.h"
using namespace std;
int main(int argc, const char * argv[]) {
Test test;
cout << test.x << endl; // Should be 0.
test.f(test.x);
cout << test.x << endl; // Should be 10.
return 0;
}
的與類測試
#ifndef __CPP_Playground__test__
#define __CPP_Playground__test__
#include <iostream>
class Test {
private:
int x_;
public:
const int &x;
void f(int target);
Test() : x(x_) {}
};
#endif /* defined(__CPP_Playground__test__) */
以下結構和適當的CPP文件
#include "test.h"
void Test::f(int target){
target = 10;
};
但它不起作用。我怎樣才能解決這個問題?
需要初始化'在構造函數中x_'。在'Test :: f()'中做一些實際上有效的事情。 – juanchopanza 2015-02-09 12:10:33
但是這是我的問題:我如何改變它以確保它有效果? – DaPhil 2015-02-09 12:13:19
更改不是本地變量的值的值?看看'Test :: f()'。它在做什麼?沒有。 – juanchopanza 2015-02-09 12:14:09