C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在c中,如何创建从T到T *的转换?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在准备OOP试时,我很高兴看到g编译下面的代码(没有实例化),即使它似乎毫无意义:

template<class T> void f() {
    T t = "a";
    t += 5.6;
    t->b();
    T* p = t;
    p = P*(t/"String");
}

然后我开始着手实现这个实例化和编译.

我创建了以下类:

class A {
    public:
    A(const char* s) {}
    void operator+=(double d) {}
    A operator/(char* str) {return A("");}
    A* operator->() {return this;}
    A* operator=(A& a) {return &a;}
    void b() {}
};
A* operator*(A* a,A b) {return new A("");}

它允许几乎所有的模板工作,除了线

T* p = t;

我的问题是,什么运算符或构造函数将使这一行工作?目前它给了我“错误:在初始化时无法将’A’转换为’A *’”

解决方法

这是一条完全毫无意义的路线.

但为了使其可编译,您可以提供转换运算符:

operator A* () { return 0; }

希望你意识到这是多么邪恶.

大佬总结

以上是大佬教程为你收集整理的在c中,如何创建从T到T *的转换?全部内容,希望文章能够帮你解决在c中,如何创建从T到T *的转换?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。