| [#198] | project: specification | priority: low | category: feature | |
|---|---|---|---|---|
| submitter | assigned to | status | date submitted | |
| Matthias | Martin | won't fix | 2003-10-15 14:11:38.0 | |
| subject | Scoping surprise | |||
| code |
class A {
protected val f: Int = 1;
}
class B(f: Int) extends A {
def g = Pair(f, this.f);
}
object Test with Executable {
Console.println((new B(7)).g);
} |
|||
| what happened | The program produces the following output:(1,1) |
|||
| what expected | I would have expected that f refers to the constructor parameter in the body of class B. But obviously, there seems to be no way to access the constructor parameter at all. |
|||
| [back to overview] | ||||
| Martin edited on 2003-10-16 11:38:59.0 |
| Correct. Constructor parameters are in a scope which encloses the class template. The latter contains also all inhrited members. |