c++ - 我可以将对象分配给整型变量吗?

标签 c++

假设我有一个对象。我将其分配给一个整数。

MyClass obj1 = 100;//Not valid

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

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

MyClass obj1 = 100;//Now, its valid

同样,在任何情况下,反之亦然有效吗?!

eg) int Number = obj1;//Is it VALID or can be made valid by some tweeks

编辑:

我发现使用转换函数可以做到这一点。 转换函数通常称为“转换运算符”,因为它们(与构造函数一起)是使用转换时调用的函数。

转换函数使用以下语法:

operator conversion-type-name ()

eg)很多人在下面解释得很清楚

最佳答案

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

例如如果你的类有一个转换 operator int 它会起作用:

MyClass
{
public:
    operator int() const { return 200; }
};

关于c++ - 我可以将对象分配给整型变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035367/

相关文章:

c++ - 对象构造/前向函数声明歧义

c++ - TCP Telnet 传输中丢失字符

c++ - 将用户定义的类存储在以成员为键的映射中

java - 标记和未标记中断,在 C# 或 C++ 中继续

c++ - auto 和 const 对象

c++ - std::result_of on std::bind 不能在 clang++ 3.4 上编译

c++ - 如何从变量数据创建 std::initializer_list

c++ - 状态设计模式-编译错误

c++类输出不完全显示

C++ - 否则返回 Elseif