"одно,двух(неважно)направленный список"
class node
{
int data;
.....
}
&
class list
{
node *ptr;
...
}
Ya mogu zanosit' dannye v "data" cherez funkzii "list"???
Spasibo
Можно сделать так:
class node{
int data;
public:
void set_data(int value){ data = value; }
int get_data(){ return (data); }
...
};
Тогда класс list сможет работать с data через функции set_data и get_data.
А еще лучше сделать data свойством, в принципе это тоже самое, только работать будет удобнее:
class node{
int f_data;
void set_data(int value){ f_data = value; }
public:
__property int data = {read = Fdata, write = set_data};
...
};
Теперь работать с data можно непосредственным обращением
n.data = 1234; //запись значения
int d = n.data; //чтение значения
data является закрытым(private) членом класса node, поэтому работать с data может только сам класс node.
Можно сделать так:
class node{
int data;
public:
void set_data(int value){ data = value; }
int get_data(){ return (data); }
...
};
Тогда класс list сможет работать с data через функции set_data и get_data.
А еще лучше сделать data свойством, в принципе это тоже самое, только работать будет удобнее:
class node{
int f_data;
void set_data(int value){ f_data = value; }
public:
__property int data = {read = Fdata, write = set_data};
...
};
Теперь работать с data можно непосредственным обращением
n.data = 1234; //запись значения
int d = n.data; //чтение значения
"сделать data свойством"-chto znachit sdelat' svoysvom?
Свойство объявляется следующим образом:
__property <тип> <имя_свойства> = {<список_атрибутов>}
Например:
__property int data = {read = get_data, write = set_data};
get_data/set_data - функции, осуществляющие чтение/запись. Когда пишешь n.data = 3;, то происходит вызов функции set_data(int) с параметром 3, которая должна быть описана в классе.
int d = n.data осуществляет вызов get_data(). Если при чтении нужно вернуть само значение, то можно написать в списке атрибутов
read = f_data, где f_data - поле, хранящее значение.
Kogda u menya est' :
class node
{
int data;
.....
}
&
class list
{
node *ptr;
...
}
Ya mogu zanosit' dannye v "data" cherez funkzii "list"???
Spasibo
По сути вопроса.
Ты уверен, что поле дата должно быть приватным?
Если ты специально сделал поле data приватным, то открыть его для методов класса list ты можешь добавив в описание класса node строку friend list;
class node
{
friend list;
int data;
.....
};
class list
{
node *ptr;
...
};
Теперь о другом. Постарайся давать топикам соответствующее теме название. Лично я никакой связи вопроса со связанными списками не вижу.
Кроме того, если тебе нужен связанный список не в качестве упражнения, то целесообразней воспользоваться стандартными контейнерами из STL.
Kogda u menya est' :
class node
{
int data;
.....
}
&
class list
{
node *ptr;
...
}
Ya mogu zanosit' dannye v "data" cherez funkzii "list"???
Spasibo
Хм. Если тебе нужен обычный список - зачем его делать в виде класса?
Все можно сделать гораздо проще:
typedef struct _node
{
int data;
_node *next;
} list;
Хм. Если тебе нужен обычный список - зачем его делать в виде класса?
Все можно сделать гораздо проще:
typedef struct _node
{
int data;
_node *next;
} list;
А еще в VCL есть очень удобный класс TList. Я всегда им пользуюсь :)
А вообще, вам уже правильно ответили, что data - private (т.е. недоступный извне ) член класса. (Т.к. в С++ все объявленные члены класса по умолчанию становятся private). Можно, например, сделать его public, и тогда не будет таких проблем. (Могут появиться другие :))