const behaviour
    Namespace 
    rswhite4 at googlemail.com
       
    Fri Jun 22 03:25:15 PDT 2012
    
    
  
As far as i know "int" is not immutable or const by default.
So, why work this code:
[code]
import std.stdio;
class Bar {
	
}
class Foo {
private:
	int _id;
	
	Bar _b;
	
public:
	this(int id, Bar b) {
		this._id = id;
		
		this._b = b;
	}
	
	// const_behaviour.d(18): Error: cannot implicitly convert 
expression (this._b) of type const(Bar) to const_behaviour.Bar
	const(Bar) GetB() const pure nothrow { /// <- must be const(Bar) 
instead of Bar
		return this._b;
	}
	
	int GetId() const pure nothrow { /// <- no const(int) is 
neccessary. Why?!
		return this._id;
	}
}
void main() {
	Bar b = new Bar();
	
	Foo f = new Foo(42, b);
}
[/code]
    
    
More information about the Digitalmars-d-learn
mailing list