0
我已經定義了下面的結構和它的默認構造函數:初始化與用戶定義的構造
struct State
{
State()
{
// Initialize both stacks with unit matrices
objStack.push(Matrix(1, 1, 1, SCALE));
lightStack.push(Matrix(1, 1, 1, SCALE));
}
std::stack<Affine> objStack;
std::stack<Affine> lightStack;
int maxDepth = 5;
std::unique_ptr<Point[]> vertices = nullptr;
Colour ambient = Colour(0.2);
};
如果當我實例化一個國家結構是執行我聲明的構造函數,將最後3個變量仍然用5,nullptr和Color(0.2)初始化?或者我的構造函數應該如下所示:
State()
{
// Initialize both stacks with unit matrices
objStack.push(Matrix(1, 1, 1, SCALE));
lightStack.push(Matrix(1, 1, 1, SCALE));
maxDepth = 5;
vertices = nullptr;
ambient = Colour(0.2);
}
我不確定這裏會發生什麼。
你的第一個版本是否編譯? –
它編譯! – user3266738
默認情況下,不需要顯式初始化具有值的變量。在你的第二個代碼片段中,成員將被初始化兩次。 –