example 1 (implicit conversion)
class MyObj
{
public:
MyObj(int size): m_size(size) {}
private:
int m_size;
};
....
void A::someMethod()
{
MyObj mw(10);
mw = 5;// wrong; trying convert 5 to MyObj (implicit conversion)
}
class MyObj
{
public:
MyObj(int size): m_size(size) {}
private:
int m_size;
};
....
void A::someMethod()
{
MyObj mw(10);
mw = 5;// wrong; trying convert 5 to MyObj (implicit conversion)
}
To copy to clipboard, switch view to plain text mode
example 2 (using explicit keyword)
class MyObj
{
public:
explicit MyObj(int size): m_size(size) {}
private:
int m_size;
};
....
void A::someMethod()
{
MyObj mw(10);
mw = 5;//compile error; explicit conversion is needed.
mw = MyObj(5);//ok
}
class MyObj
{
public:
explicit MyObj(int size): m_size(size) {}
private:
int m_size;
};
....
void A::someMethod()
{
MyObj mw(10);
mw = 5;//compile error; explicit conversion is needed.
mw = MyObj(5);//ok
}
To copy to clipboard, switch view to plain text mode
Bookmarks