PDA

View Full Version : سوال: ارسال اشاره گر به عنوان کلاس



hamidmahjoob
دوشنبه 15 اردیبهشت 1393, 21:26 عصر
با سلام،
دو تا کلاس دارم.
اشاره گری که به Node ساخته شده در Class1 اشاره میکند را می خواهم به تابعی در کلاس دوم "Class2"بفرستم تا از آدرس این گره در کلاس دوم استفاده کنم؟
روشی میخواستم؟
public class Class1()
{
public class Node
{
public object NodeContent;
public Node Next;
}
class2 p=new class2();
public void function1()
{
var tree = new Node();
root = tree;
p.function2(root);
}
}
///////////////////////////////////
public class Class2()
{
public class Node
{
public object NodeContent;
public Node Next;
}

public void function2(root)
{
..............................
}
}

plus
سه شنبه 16 اردیبهشت 1393, 00:47 صبح
شما میتونی در #C بجای استفاده از Pointer از Reference استفاده کنی.ولی توی کدی که ارائه دادی دو تا کلاس Node تعریف کردی، یکی Class1.Node یکی Class2.Node که این دو تا با هم برابر نیستن.
کلاس Node رو خارج از دو کلاس تعریف کنید. برای function2 یک آرگومان از نوع Node تعریف کنید و در function1 با فراخوانی function2، متغیر root رو به اون ارسال کنید.در این حالت شما یک ارجاع به root رو به شی ای از کلاس دوم ارسال کردین.برای مطالعه بیشتر در مورد Reference ها میتونید به یک کتاب آموزش #C مراجعه کنید.
البته در #C امکان استفاده از pointer ها هم وجود داره ولی در اکثر موارد نیازی به استفاده از اونها نیست.

hamidmahjoob
سه شنبه 16 اردیبهشت 1393, 10:33 صبح
شما میتونی در #C بجای استفاده از Pointer از Reference استفاده کنی.ولی توی کدی که ارائه دادی دو تا کلاس Node تعریف کردی، یکی Class1.Node یکی Class2.Node که این دو تا با هم برابر نیستن.
کلاس Node رو خارج از دو کلاس تعریف کنید. برای function2 یک آرگومان از نوع Node تعریف کنید و در function1 با فراخوانی function2، متغیر root رو به اون ارسال کنید.در این حالت شما یک ارجاع به root رو به شی ای از کلاس دوم ارسال کردین.برای مطالعه بیشتر در مورد Reference ها میتونید به یک کتاب آموزش #C مراجعه کنید.
البته در #C امکان استفاده از pointer ها هم وجود داره ولی در اکثر موارد نیازی به استفاده از اونها نیست.

ای کاش بهتر بود سوالم رو بهتر میپرسیدم!!!. میخوام لسیت ساخته شده در کلاس2 به گره ها در درخت ساخته شده در کلاس 1 اشاره کنه.

public class Class1()
{
public class Node
{
public int x=0, y=0, cost=0;
public Node up=null, left=null, down=null, right=null, parent=null;
}
private Node root=null;
class2 p=new class2();
public void function1()
{
var tree = new Node();
root = tree;
p.function2(root);
}
}
///////////////////////////////////
public class Class2()
{
public class Node
{
public object NodeContent;
public Node Next;
}

public void function2(root)
{
..............................
}
}