c++ - 双重转换会解决它,但 C++ 中没有这样的事情,对吗?

标签 c++

我有这样的东西......

void f(dclass b);

class dclass
{
    dclass(string s);
};

f("s");

这似乎行不通。原则上,它可以进行双重转换:char* -> string -> dclass

所以C++中没有这样的东西。或者也许某些编译器支持它...您知道一种可能实现它的语言吗?

最佳答案

它可以,但这在有重载的语言中不会真正起作用。您将 O(N) 重载决策转换为 O(N*M) 重载决策。通常,重载被认为是比多个用户定义的转换更有值(value)的语言特性。

关于c++ - 双重转换会解决它,但 C++ 中没有这样的事情,对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9018017/

相关文章:

c++ - 用 Doxygen 或类似工具记录枚举标志

c++ - 在类成员中初始化变量是不好的做法吗?

c# - 在 C# 中包装 C++ 类 DLL

c++ - 将#include 包装在命名空间 block 中是个好主意吗?

c++ - 类树与结构树节点

c++ - 修改发送 DBT_DEVICEREMOVECOMPLETE 之前的时间

c++ - 当我尝试使用ONE LINE编译程序时,g++崩溃

c++ - 传递 std::ifstream 以用作指针

c++ - 如何从 udp 套接字 (C/C++) 获取您自己的(本地)IP 地址

c++ - 逐行读取文本文件,然后逐字 C++,推送到数组