gpt4 book ai didi

c++ - 如何调用用户定义对象的类型转换例程?

转载 作者:行者123 更新时间:2023-11-30 02:35:18 25 4
gpt4 key购买 nike

#include <iostream>
using namespace std;
class myclass
{};

class yourclass
{
public:
operator myclass() const;
};

yourclass::operator myclass() const
{}

int main() {
// your code goes here

yourclass yc;

myclass mc;

mc=yc;
return 0;
}

谁调用了 yourclass::operator myclass() constmc 会调用它吗?或者它的调用是由编译器基于某种启发式调用的吗?

我们怎么知道是谁调用的?

Object-Oriented Programming in C++表示目标对象调用例程。怎么办?

最佳答案

编译器在尝试 implicit conversion 时生成对 yourclass::operator myclass() const 的调用.基本上是作业

mc = yc;

由编译器翻译成

mc = yc.operator myclass();

您甚至可以像上面一行那样手动调用转换运算符。

关于c++ - 如何调用用户定义对象的类型转换例程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33771940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com