2010-06-14 54 views
1

让我说我有一个对象。我将它分配给一个整数。我可以分配一个对象到一个整型变量吗?

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 

编辑

,我发现这个使用转换函数就可以了。 转换函数通常被称为“转换操作符”,因为它们(连同构造函数)是使用转换时调用的函数。

转换函数使用以下语法:

运营商转换类型名称()

例如)许多人都整齐地低于

回答

6

是的,只要该对象可以直接或通过中间对象隐式转换为int即可。

E.g.如果你的类有一个转换operator int它的工作:

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

解释它是的,你需要添加一个转换运算符到MyClass

运算符int();

2

有只有一个参数C++的构造函数自动执行隐式类型转换。这就是为什么从int转换到MyClass的原因。要创建从MyClass到int的转换,您必须在MyClass中定义operator int()

0

MyClass的是不是一个整数,因此你不能做int Number = obj1; 你应该有一个方法或操作(由他人陈述)在MyClass中返回一个int。 (int number = obj1.GetNum();

相关问题