Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2017, 23:14   #1
mnb
 
Регистрация: 18.12.2016
Сообщений: 3
По умолчанию Перевод кода из C# в C++

Есть рабочий код на C#:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public interface IAdapter
{
    string Name { get; }
    int Age { get; }
    int NumberOfFriends { get; }
}

class VkAdapter : IAdapter
{
    private readonly IVk _vk;

    public VkAdapter(IVk vk)
    {
        _vk = vk;
    }

    public string Name
    {
        get { return _vk.VkName; }
    }
    public int Age
    {
        get { return _vk.VkAge; }
    }
    public int NumberOfFriends
    {
        get { return _vk.VkNumberOfFriends; }
    }
}

public interface IVk
{
    string VkName { get; }
    int VkAge { get; }
    int VkNumberOfFriends { get; }
}

public class Vk : IVk
{
    private readonly string _vkName;
    private readonly int _vkAge;
    private readonly int _vkNumberOfFriends;

    public Vk(string vkName, int vkAge, int vkNumberOfFriends)
    {
        _vkName = vkName;
        _vkAge = vkAge;
        _vkNumberOfFriends = vkNumberOfFriends;
    }

    public string VkName
    {
        get { return _vkName; }
    }
    public int VkAge
    {
        get { return _vkAge; }
    }
    public int VkNumberOfFriends
    {
        get { return _vkNumberOfFriends; }
    }
}

class Program
{
    static void Main()
    {
        var vkUser = new Vk("Василий Пупкин", 22, 987);
        UserProfile.PrintUserInfo(new VkAdapter(vkUser));
        Console.Read();

    }
}

public static class UserProfile
{
    public static void PrintUserInfo(IAdapter user)
    {
        Console.WriteLine("Имя пользователя: \t\t {0}", user.Name);
        Console.WriteLine("Возраст: \t\t\t {0}", user.Age);
        Console.WriteLine("Количество друзей: \t\t {0}", user.NumberOfFriends);
        Console.WriteLine("--- --- --- --- --- ---");
    }
}
Надо переделать на C++.
Мои попытки успеха не достигли:
Код:
#include <iostream>
#include <string>

using namespace std;

class IAdapter
{
public:
	virtual std::wstring getName() const = 0;
	virtual int getAge() const = 0;
	virtual int getNumberOfFriends() const = 0;
};

class IVk
{
public:
	virtual string getVkName() const = 0;
	virtual int getVkAge() const = 0;
	virtual int getVkNumberOfFriends() const = 0;
};

class VkAdapter : public IAdapter
{
private:
	IVk const _vk;

public:
	VkAdapter(IVk *vk);

	string getName() const;
	int getAge() const;
	int getNumberOfFriends() const;
};


VkAdapter::VkAdapter(IVk *vk) : _vk(vk)
{
}

string VkAdapter::getName() const
{
	return _vk->VkName;
}

int VkAdapter::getAge() const
{
	return _vk->VkAge;
}

int VkAdapter::getNumberOfFriends() const
{
	return _vk->VkNumberOfFriends;
}



class Vk : public IVk
{
private:
	const std::wstring _vkName;
	const int _vkAge;
	const int _vkNumberOfFriends;

public:
	Vk(const std::wstring &vkName, int vkAge, int vkNumberOfFriends);

	std::wstring getVkName() const;
	int getVkAge() const;
	int getVkNumberOfFriends() const;
};



Vk::Vk(const string &vkName, int vkAge, int vkNumberOfFriends) : _vkName(vkName), _vkAge(vkAge), _vkNumberOfFriends(vkNumberOfFriends)
{
}

std::wstring Vk::getVkName() const
{
	return _vkName;
}

int Vk::getVkAge() const
{
	return _vkAge;
}

int Vk::getVkNumberOfFriends() const
{
	return _vkNumberOfFriends;
}

class UserProfile 
{
public:
	static void PrintUserInfo(IAdapter *user);
};



void UserProfile::PrintUserInfo(IAdapter *user)
{
	std::wcout << std::wstring(L"Имя пользователя: \t\t ") << user->Name << std::endl;
	std::wcout << std::wstring(L"Возраст: \t\t\t ") << user->Age << std::endl;
	std::wcout << std::wstring(L"Количество друзей: \t\t ") << user->NumberOfFriends << std::endl;
	std::wcout << std::wstring(L"--- --- --- --- --- ---") << std::endl;
}

void main()
{
   vkUser  = new Vk(L"Василий Пупкин", 22, 987);
    VkAdapter tempVar(vkUser);
    UserProfile::PrintUserInfo(&tempVar);
}
Прошу помочь
mnb вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод кода Smail95 Помощь студентам 1 30.05.2014 10:06
Перевод кода flyman33 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 12.04.2014 14:41
Перевод кода на С++. opax Помощь студентам 0 07.12.2010 07:10
ПЕРЕВОД КОДА 2008kedr2008 Помощь студентам 0 25.11.2010 17:33