最长的Hello, World!(C++)
最长的Hello, World!(C++)
#include <iostream>
#include <string>
#include <vector>
#include <memory>
#include <random>
_<typename T>
class Node
{
public:
T data;
std::shared_ptr<Node<T>> next;
Node(const T &value) : data(value), next(nullptr)
{}
};
_<typename T>
class LinkedList
{
public:
LinkedList() : head(nullptr)
{}
void append(const T &value)
{
auto newNode = std::make_shared<Node<T>>(value);
if (!head)
{
head = newNode;
} else
{
auto current = head;
while (current->next)
{
current = current->next;
}
current->next = newNode;
}
}
void print() const
{
auto current = head;
while (current)
{
std::cout << current->data;
if (current->next)
{
std::cout << " ";
}
current = current->next;
}
std::cout << "";
}
private:
std::shared_ptr<Node<T>> head;
};
class MessageBuilder
{
public:
MessageBuilder()
{
list.append("Hello,");
list.append("World!");
}
LinkedList<std::string> getMessage()
{
return list;
}
private:
LinkedList<std::string> list;
};
class Printer
{
public:
Printer() : messageBuilder()
{}
void printMessage()
{
try
{
LinkedList<std::string> messageList = messageBuilder.getMessage();
messageList.print();
} catch (const std::exception &e)
{
std::cerr << "Error printing message: " << e.what();
}
}
private:
MessageBuilder messageBuilder;
};
class Application
{
public:
Application() : printer()
{}
void run()
{
printer.printMessage();
}
private:
Printer printer;
};
int main()
{
Application app;
app.run();
return 0;
}
本文来自博客园,作者:avrox,转载请注明原文链接:https://www.cnblogs.com/avrox/p/18327436
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验