模板如何提升工业代码复用性
实战项目:创建通用【工业设备容器】模板类
- 类模板的定义与实例化
- 模板参数默认值
#include <iostream>
#include <string>
using namespace std;template <typename T = string>
class IndustrialContainer {
private:T data;
public:IndustrialContainer(T d) : data(d) {}void display() {cout << "当前存储:" << data << endl;}
};int main() {IndustrialContainer<int> ic1(100); // 存储整型(如设备ID)IndustrialContainer<> ic2("温度传感器"); // 使用默认string类型ic1.display(); // 输出:当前存储:100ic2.display(); // 输出:当前存储:温度传感器return 0;
}
vector在设备管理中的实战技巧
实战项目:模拟工业设备管理
- vector的增删改查
- 迭代器的遍历
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;class Device {
public:string name;int id;Device(string n, int i) : name(n), id(i) {}
};int main() {vector<Device> devices;// 添加设备devices.push_back(Device("传感器", 1001));devices.emplace_back("机械臂", 2002); // 更高效的添加方式// 遍历设备(使用迭代器)cout << "=== 设备列表 ===" << endl;for (auto it = devices.begin(); it != devices.end(); ++it) {cout << "ID:" << it->id << " 名称:" << it->name << endl;}// 查找设备(Lambda表达式)int targetId = 2002;auto result = find_if(devices.begin(), devices.end(), [targetId](const Device& d){ return d.id == targetId; });if (result != devices.end()) cout << "找到设备:" << result->name << endl;elsecout << "设备未找到" << endl;return 0;
}
算法模板在工厂模式中的妙用
实战项目:优化工业设备工厂系统
c++实战项目:工业设备工厂系统_通过c++开发制造业项目的源代码-CSDN博客
- sort():排序
- find_if:条件查找
- for_each():遍历操作
#include <vector>
#include <algorithm>// 在原有工厂类中添加模板方法
template <typename T>
class DeviceFactory {
private:vector<T*> devices;
public:void addDevice(T* dev) {devices.push_back(dev);}void showAllDevices() {for_each(devices.begin(), devices.end(), [](T* dev){ dev->displayInfo(); });}
};// 使用示例
int main() {DeviceFactory<IndustrialDevice> factory;factory.addDevice(new Sensor("压力传感器"));factory.addDevice(new RobotArm(8000));factory.showAllDevices();return 0;
}