我想提供一個成員函數的類,它將分別初始化類的所有成員。只能在C++的成員初始化列表中調用成員函數嗎?
例如
#include <iostream>
using namespace std;
int x = 10;
class my{
public:
my():init{}
int &i;
void init()
{
i = x;
}
};
int main()
{
my m;
return 0;
}
我知道如果我可以用"class my : i(init())"
的工作,但我有一些特殊用途並初始化像上面。
然而,在上面的例子中,我發現了以下錯誤:
類「我」沒有名爲「initMy」任何領域。
如何解決這個問題?
@All現在我編輯的類代碼,請你看看現在吧。 – balaji 2014-12-19 06:39:52
函數不能初始化成員,只能將新值賦給已經初始化的成員。顯式初始化數據成員的唯一方法是將它列在一個bases-members-initializer中,並且唯一可以放在bases-members-initializer中的東西是數據成員和基數,以及(在C++ 11中)其他構造函數。您可以在構造函數體中調用成員函數。 – 2014-12-19 07:23:28
'initMy()'是什麼?那是什麼定義? – 2014-12-19 07:23:32