這是我的頭文件,其數組Data
,我的老師想要在Heap
的構造函數中進行初始化。在類構造函數中初始化類成員數組?
#ifndef HEAP_H
#define HEAP_H
class Heap
{
private:
int Data [100];
int Parent(int);
int RightChild(int);
int LeftChild(int);
void Heapify(int*, int);
void BuildHeap(int*);
public:
Heap();
void insert(int*);
void HeapSort(int*);
void ExtractMaximum(int*);
int Maximum(int*);
void PrintHeap(int*);
int heapsize;
int* GetData();
};
#endif
的構造是在這裏:
Heap::Heap()
{
Data = {4, 12, 3, 19, 23, 5, 32, 11, 2, 24};
heapsize = 10;
BuildHeap(Data); //build a heap with initial values
}
每當我運行的代碼在構造函數中的第一行代碼,初始化數組,我得到以下警告:
警告:擴展初始化程序列表僅適用於
-std=c++0x
或-std=gnu++0x
很明顯,我做錯了什麼,這是我對這個代碼唯一的錯誤/警告,它運行時,我拿走了初始化Data
的代碼行。
我不一定會說你使用C++ 11功能做錯了什麼,除非你的老師明確告訴你不要。 – ildjarn
閱讀警告。它告訴你應該使用什麼編譯器選項來完成這項工作。而不是'g ++ ...','g ++ -std = C++ 0x ...'。 –