1

クラスを別のクラス メソッドに渡すにはどうすればよいですか? この例を使用すると、eat メソッドで「animal.name」が空になります。

import std.stdio;

void main()
{
    Animal cat = new Animal;
    Animal dog = new Animal;

    cat.name = "fluffy";
    dog.name = "bruce";

    dog.eat(cat);
}

class Animal
{
    auto name = "none";

    void eat( Animal animal )
    {
        writeln(this.name);
        writeln("is going to eat");
        writeln(animal.name);
    }
}
4

1 に答える 1

2

まあ、例を実行するとうまくいくので、私が作業している実際のコードには別の(私の元の質問とは関係ありません)問題があるはずです。

将来この質問に来る人にとって、これはコンパイルされて機能します:

import std.stdio;

void main()
{
    Cat cat = new Cat;
    Dog dog = new Dog;

    cat.name = "fluffy";
    dog.name = "bruce";

    dog.eat(cat);
}

class Animal
{
    auto name = "none";

    void eat( Animal animal )
    {
        writeln(this.name);
        writeln("is going to eat");
        writeln(animal.name);
    }
}

class Cat: Animal
{

}

class Dog: Animal
{

}
于 2013-11-07T21:33:21.640 に答える