Generics. Обобщенные типы

Последнее обновление: 04.05.2024

C++

C#

Dart

Kotlin

Rust

C++

#include <iostream> 
 
template <typename T>
class Person {
public:
    Person(T id, std::string name) : id{id}, name{name}
    { }
    void print() const  
    {
        std::cout << "Id: " << id << "\tName: " << name << std::endl;
    }
private:
    T id;
    std::string name;
};
int main()
{
    // явная типизация
    Person<unsigned> tom1{123456, "Tom"};
    tom1.print();    // Id: 123456      Name: Tom
    Person<std::string> bob1{"tvi4xhcfhr", "Bob"};
    bob1.print();    // Id: tvi4xhcfhr  Name: Bob

    // неявная типизация
    Person tom2{123456, "Tom"};
    tom2.print();    // Id: 123456      Name: Tom
    Person bob2{"tvi4xhcfhr", "Bob"};
    bob2.print();    // Id: tvi4xhcfhr  Name: Bob
}

C#

Person<int> tom = new(123456, "Tom");
tom.Print();
Person<string> bob = new("tvi4xhcfhr", "Bob");
bob.Print();

class Person<T>
{
	T id;	// идентификатор пользователя
	string name; // имя пользователя
	public Person(T id, string name)
    {
        this.id = id;
        this.name = name;
    }
    public void Print() => Console.WriteLine($"id: {id} \t name: {name}");
}

Dart

class Person<T>{
	T id;	// идентификатор пользователя
	String name; // имя пользователя
	Person(this.id, this.name);

    void display() => print("id: $id \t name: $name");
}
void main (){
	
	Person tom = Person(123456, "Tom");
	tom.display();
	Person bob = Person("tvi4xhcfhr", "Bob");
	bob.display();
}

Kotlin

fun main() {

    val tom = Person(123456, "Tom")
    tom.display()
    val bob = Person("tvi4xhcfhr", "Bob")
    bob.display()
}

class Person<T>(val id: T, val name: String){

    fun display() = println("id: $id \t name: $name")
}

Rust

struct Person<T>{
	id: T,	// идентификатор пользователя
	name: String // имя пользователя
}

impl<T:std::fmt::Display> Person<T>{
     
    fn display(&self){
        println!("id: {}\t  name: {}", &self.id, &self.name);
    }
}

fn main(){
    
    let tom = Person{id:123456, name:"Tom".to_string()};
	tom.display();
	let bob = Person{id:"tvi4xhcfhr", name: "Bob".to_string()};
	bob.display();
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850