Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переделать код с C# на C++ 
:(
    Опции темы
dima2308
Дата 18.5.2017, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 5.12.2014

Репутация: нет
Всего: нет



Требуется перевести код с языка 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("--- --- --- --- --- ---");
    }
}


Вот моя попытка:
Код

#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);
}


Это сообщение отредактировал(а) dima2308 - 18.5.2017, 20:03
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1249 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.