这是我的头文件,其数组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 ...'。 –