c++自动生成代码的代码‘
时间: 2023-07-03 14:12:07 浏览: 59
自动生成代码是一种常见的编程技巧,可以提高开发效率。在 C++ 中,可以使用模板来实现自动生成代码的功能。下面是一个简单的示例:
```c++
#include <iostream>
#include <string>
using namespace std;
template <typename T>
class MyVector {
public:
MyVector(int size) {
data = new T[size];
this->size = size;
}
~MyVector() {
delete[] data;
}
void set(int i, T value) {
data[i] = value;
}
T get(int i) {
return data[i];
}
int getSize() {
return size;
}
private:
T* data;
int size;
};
// 自动生成代码
#define DECLARE_VECTOR_TYPE(type) \
typedef MyVector<type> Vector##type; \
Vector##type createVector##type(int size) { \
return Vector##type(size); \
} \
DECLARE_VECTOR_TYPE(int)
DECLARE_VECTOR_TYPE(double)
DECLARE_VECTOR_TYPE(string)
// 测试
int main() {
auto v1 = createVectorInt(10);
auto v2 = createVectorDouble(20);
auto v3 = createVectorString(30);
for (int i = 0; i < v1.getSize(); i++) {
v1.set(i, i);
cout << v1.get(i) << " ";
}
cout << endl;
for (int i = 0; i < v2.getSize(); i++) {
v2.set(i, i * 0.1);
cout << v2.get(i) << " ";
}
cout << endl;
for (int i = 0; i < v3.getSize(); i++) {
v3.set(i, "string " + to_string(i));
cout << v3.get(i) << " ";
}
cout << endl;
return 0;
}
```
在上面的示例中,使用宏 `DECLARE_VECTOR_TYPE` 来自动生成代码,可以生成不同类型的向量类和创建向量对象的函数。这样可以避免重复编写类似的代码,提高开发效率。