const behaviour
Namespace
rswhite4 at googlemail.com
Fri Jun 22 02:21:04 PDT 2012
Based to the current const discussions (once again) I wanted to
appease my curiosity and want to ask why the following code works
as described in the comments:
[code]
import std.stdio;
class Bar { }
class Foo {
private:
string _text;
Bar _b;
public:
this(string text, Bar b) {
this._text = text;
this._b = b;
}
// const_behaviour.d(18): Error: cannot implicitly convert
expression (this._b) of type const(Bar) to const_behaviour.Bar
Bar GetB() const pure nothrow { /// <- must be const(Bar)
instead of Bar
return this._b;
}
string GetText() const pure nothrow { /// <- no const(string) is
neccessary. Why?
return this._text;
}
}
void main() {
Bar b = new Bar();
Foo f = new Foo("foobar", b);
}
[/code]
More information about the Digitalmars-d-learn
mailing list