发信人: ynt(ynt), 信区: C
标 题: 请教变量作用域问题
发信站: 饮水思源 (2012年11月18日06:45:31 星期天)

问题:倒数第四行的函数eats()返回引用bf,但bf的声明是倒数第二行。为啥bf的使用
可以在声明之前?如何理解?来自某书的某段代码如下:(g++编译整个代码无报错),谢
谢各位先。

class PetFood {
public:
virtual string foodType() const = 0;
};

class Pet {
public:
virtual string type() const = 0;
virtual PetFood* eats() = 0;
};

class Bird : public Pet {
public:
string type() const { return "Bird"; }
class BirdFood : public PetFood {
public:
string foodType() const {
return "Bird food";
}
};
BirdFood* eats() { return &bf; }
private:
BirdFood bf;
};
--

※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 130.245.202.27]