【发布时间】:2021-08-11 23:05:26
【问题描述】:
我有一个完全如下的课程。
但是在向我的类声明指针 var 时出现错误。这里发生了什么事? 这里有一些类似的问题,但我不明白为什么我的案例不起作用,因为指针是类本身的。
编辑: 按照aweebit的回答。
现在假设我有一个重载的“foo”来打印任何传递的整数。有什么方法可以使用相同的 objA? 还是我必须使用模板参数 int 创建另一个 objAA?我将编辑我的问题以反映这一点。
我真的必须为每个数据类型创建一个单独的对象吗? 或者有什么方法可以在运行时实现后期绑定?
代码:
#include<iostream>
template <class T>
class A;
int main ()
{
A* objA = NULL;
objA = new A();
objA->foo("some string");
objA->foo(1);
delete objA;
objA = NULL;
return 0;
}
template <class T>
class A
{
void foo(T);
};
template <class T>
void A<T>::foo(T str)
{
std::cout << str << "\n";
}
template <class T>
void A<T>::foo(T inte)
{
std::cout << inte << "\n";
}
【问题讨论】: