相关疑难解决方法(0)

C#和Java中的泛型与C++中的模板有什么区别?

我主要使用Java和泛型相对较新.我一直在阅读Java做出错误决定或者.NET有更好的实现等.

那么,泛型中C++,C#,Java之间的主要区别是什么?每个人的利弊?

c# c++ java generics templates

203
推荐指数
6
解决办法
5万
查看次数

C++泛型类

我有一个关于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++ class

1
推荐指数
1
解决办法
6164
查看次数

C#中的泛型是否与C++中的相同?

我知道在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)

在整个介绍之后,让我们谈谈.

我的问题是:

  • C#是否像C++一样对待泛型?如果没有,那怎么样?
  • 他们是特殊类型吗?
  • 它们是在运行时还是在编译时解决的?
  • 激活寄存器中的泛型类型保留了多少空间?

c# c++ generics

0
推荐指数
1
解决办法
190
查看次数

标签 统计

c++ ×3

c# ×2

generics ×2

class ×1

java ×1

templates ×1