我有一個類,並且想要創建一個const int變量,但該變量的值在類的構造函數中不可用。可以在一個方法而不是構造函數中初始化類的const成員變量嗎?
在類的初始化方法中,我獲取值。我可以用這種方法分配嗎? 因爲我只給它分配一次(正如const所說)爲什麼它不起作用?
代碼爲如下[只是個雛形]:
文件:A.H
Class A
{
private :
const long int iConstValue;
public :
A();
initClassA();
}
文件:A.cpp
A::A()
{
//CanNot initialize iConstValue (Don't have it)
}
A::initClassA(some params)
{
// calculation according to params for iConstValue
iConstValue = (some value)
}
這是行不通的。有人有任何解決方案?
注:我不能以任何方式對iconstValue獲得價值構造因爲有一些限制。所以請不要這樣做。
「我只給它分配一次(如const所說)」 - const並沒有說你可以分配一次。 const說你根本不能指定它(但你可以初始化它)。賦值和初始化是不同的事情,你嘗試的是賦值。 – 2012-07-20 08:32:50
爲什麼你的類需要'iConstValue'是'const'?也許你的設計需要重新評估? – Aesthete 2012-07-20 08:39:09
當時的課程設計有缺陷。你*應該*能夠在構造函數中獲得值,否則你的對象沒有被正確初始化,並且初始化是構造函數的工作。 – 2012-07-20 08:40:37