0
まだC++でかなり新しく、ここでノッチをキックしようとしています。入れ子になったNodeクラスを使用してHeapクラスを構築し、ヒープクラスにヒープソートアスペクトを追加したいと思います。私はJavaと似たようなことをしましたが、.cppファイルにネストされたクラスを定義しようとしています。ヘッダファイルからネストされたクラスを定義する
#pragma once
#ifndef HEAP_H
#define HEAP_H
template <class T>
class Heap
{
public:
class Node
{
public:
Node(T);
T data;
private:
Node *parent;
Node *left_child;
Node *right_child;
boolean is_root;
};
Heap(T*, int);
sort_it();
private:
T *unsorted_list
Node root;
void build_heap();
void add_node(Node);
void swap_root();
void trickle_down();
void heap_sort();
};
#endif
私は.cppファイルで私の入れ子になったクラスを定義するために行くとき今、私は単に...
#include "stdafx.h"
#include "Heap.h"
#include <iostream>
//Defining Heap Constructor
Heap::Heap(T* incoming_array, int _size)
{
unsorted_list = incoming_array;
size = _size;
}
//Defining Node Constructor
Heap::Node(T _data)
{
data = _data;
left_child = right_child = parent = Null;
is_root = false;
}
が、私は私の問題は、私はテンプレートを組み込んでいますどのようであればわからないことができない、または内部クラスを定義するための私の構文が間違っている場合ジェネリックプログラミングとネストされたクラスの両方は、C++で私には慣れていません
をメンバーを宣言し、クラス外でテンプレートクラスのコンストラクタを定義するには別のcppファイルで、ヘッダファイルのクラス定義に関数を記述してください。 –