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