2012-02-07 9 views
0
class LinkedList{ 
private $first; 

public function Merge(LinkedList $ll){ 
//We can't access $ll->first for merging operation as it's private inside $ll. 
//We can only access $this->first not $first of $ll 
} 
} 

どのような解決方法がありますか?リンクされたヘッドヘッドノード識別子/ポインタアクセスの問題

  • $ first publicとしますか?それは$最初のプロパティの

をgetterメソッドを実装し

  • いいアイデアではない誰かが私の最初の$にアクセスするための正しい方法を提案してくださいことはできますか?

  • +0

    PHPでは '$ ll-> first'にアクセスできません??? – Puppy

    +0

    @DeadMG、$ llは$ thisと同じではないので、$ ll-> firstにアクセスすることはできません。 –

    +0

    @DeadMG: 'first'は' private'アクセス指定子で宣言されているのでC++もありません。 –

    答えて

    2

    アクセスはクラスではなくインスタンスを通じて制御されます。クラスのプライベートメンバーには、クラス内のコードからアクセスできます。 $thisの参照を使用するかどうかは関係ありません。

    class LinkedList{ 
        private $first="3.11"; 
    
        public function Merge(LinkedList $ll){ 
         echo $this->first, ' ', $ll->first; 
        } 
    }                     
    

    これは、PHP、Java、およびC++で同じです。

    関連する問題