M
Morgan Cheng
Hi,
This isssue consfuse me.
According to <Thinking in C++>, temporay variable is *const*. like
class X{};
X f(){return X();}
void g1(X&){}
void g2(const X&){}
int main()
{
g1(f() );//Not Ok
g2(f() );//OK,const
}
However, it is also said temporay variable can be modified.
class Y{
public:
Y(int ii){i=ii;}
void incr(){i++;}
private:
int i;
};
Y f(){return Y(0);}
main(){
f().incr();//change
}
Anybody can explan this?
Thanks
This isssue consfuse me.
According to <Thinking in C++>, temporay variable is *const*. like
class X{};
X f(){return X();}
void g1(X&){}
void g2(const X&){}
int main()
{
g1(f() );//Not Ok
g2(f() );//OK,const
}
However, it is also said temporay variable can be modified.
class Y{
public:
Y(int ii){i=ii;}
void incr(){i++;}
private:
int i;
};
Y f(){return Y(0);}
main(){
f().incr();//change
}
Anybody can explan this?
Thanks