我可以将对象分配给整数变量吗?

AKN*_*AKN 1 c++

假设我有一个对象.我将它分配给一个整数.

MyClass obj1 = 100;//Not valid
Run Code Online (Sandbox Code Playgroud)

比方说,我有一个接受整数的参数化构造函数.

MyClass(int Num)
{
    // .. do whatever..
}

MyClass obj1 = 100;//Now, its valid
Run Code Online (Sandbox Code Playgroud)

同样在任何情况下,相反的情况是否有效?!

eg) int Number = obj1;//Is it VALID or can be made valid by some tweeks
Run Code Online (Sandbox Code Playgroud)

编辑:

我发现这可以使用转换函数. 转换函数通常称为"强制转换运算符",因为它们(以及构造函数)是使用强制转换时调用的函数.

转换函数使用以下语法:

operator convert-type-name()

例如,许多人在下面整整地解释了它

CB *_*ley 6

是的,前提是该对象int可以直接或通过中间对象隐式转换为.

例如,如果您的班级有转换operator int,它将起作用:

MyClass
{
public:
    operator int() const { return 200; }
};
Run Code Online (Sandbox Code Playgroud)