我主要使用Java和泛型相对较新.我一直在阅读Java做出错误决定或者.NET有更好的实现等.
那么,泛型中C++,C#,Java之间的主要区别是什么?每个人的利弊?
我有一个关于c ++中泛型类的(简单)问题.我有一些在C#中使用它们的知识,但现在我尝试在c ++中实现一个,我有一个错误,我不知道我应该做什么让程序工作.这不是我需要的功课或其他东西,而是我自己的研究.
码:
#include <iostream>
using namespace std;
template<class A>class genericClass
{
A ceva;
char* clasa;
public:
void afisClasa(void);
genericClass(A);
~genericClass(void);
};
template<class A>genericClass<A>::afisClasa()
{
cout << clasa;
}
template<class A>genericClass<A>::genericClass(A myType)
{
myType = ceva;
if((int)ceva == ceva)
{
clasa = "INT";
goto label;
}
if((float)ceva == ceva)
{
clasa = "FLOAT";
goto label;
}
if((double)ceva == ceva)
{
clasa = "DOUBLE";
goto label;
}
label:
//cout << clasa;
}
template<class A>genericClass<A>::~genericClass(void)
{
}
int main()
{
int …Run Code Online (Sandbox Code Playgroud) 我知道在C++中,泛型实际上并不存在,但你可以使用它来模拟它template.构建代码时,编译器预处理代码并生成一个新代码,其中通用值替换为对象声明中指定的实际值,然后是真正编译的新代码.例如,假设我们有A如下类:
template<class T>
class A
{
T f();
};
Run Code Online (Sandbox Code Playgroud)
然后在我们的代码中的其他地方A<int> a;.编译的实际代码是:
class A
{
//Replaces T by int in the pre-processing
int f();
};
Run Code Online (Sandbox Code Playgroud)
在整个介绍之后,让我们谈谈.
我的问题是: