2013-08-15 2 views
-2
template <class T> 
struct node 
{ 
    T data; 
    int *p; 
};  

и если да, то каким образом мы определяем объекты такого шаблона и я хотел бы знать, мы выделить память для динамически создаваемых объектов вышеуказанной структуры и мы можем иметь указатели, которые указывают к объектам узла. Я новичок в программировании на C++, поэтому, пожалуйста, направляйте меняшаблоны могут быть использованы в определении структуры

ответ

0

Да, это вполне допустимо. Вы создаете объект:

node<int> int_node; 

И вы можете динамически распределение один с:

node<int>* p_int_node = new node<int>(); 
+0

Но, пожалуйста, _do not_. Мы больше не используем raw-указатели на C++. –

0

В С ++ struct таких же, как class, за исключением того, что все значения по умолчанию для public вместо private.

Поэтому у вас есть может иметь шаблон структуры, и все, что вы хотите сделать с ним, работает так же, как с шаблоном класса. Например:

node<int> n1; // a `int` node 
node<int> *n2 = new node<int>(); // pointer to dynamically allocated instance 
+1

Структуры не являются «такими же, как» класс; они _are_ классы - или, точнее, _user-defined types_ .. Они представляют собой один и тот же объект. Разница в доступе по существу является синтаксической и исходит из того, используете ли вы _struct-key_ 'struct' или _class-key_' class', чтобы определить свой пользовательский тип.

Смежные вопросы