python 建立 C++类和单例类脚本
2017-02-14 15:31
357 查看
这里分别是利用python 建立 C++类 和单例类的脚本
class
import sys
def CreatHeader(classname):
f=open(sys.argv[i]+".h",'w')
headermacro = "__"+classname.upper()+"_H"
f.write("#ifndef "+headermacro+'\r\n')
f.write("#define "+headermacro+'\r\n')
f.write('\r\n')
f.write("class "+classname+'\r\n')
f.write("{\r\n")
f.write("public:\r\n")
f.write(" "+classname+"();\r\n")
f.write(" "+classname+"(const " +classname+ "& i"+classname+");\r\n")
f.write(" ~"+classname+"();\r\n")
f.write("protected:\r\n")
f.write("private:\r\n")
f.write("};\r\n")
f.write("#endif //"+headermacro+'\r\n')
f.close()
def CreatSource(classname):
f=open(sys.argv[i]+".cpp",'w')
f.write("#include \""+classname+'.h\"\r\n')
f.write(classname+"::"+classname+"()\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.write(classname+"::"+classname+"(const " +classname+ "& i"+classname+")\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.write(classname+"::~"+classname+"()\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.close()
for i in range(1, len(sys.argv)):
CreatHeader(sys.argv[i])
CreatSource(sys.argv[i])
单例class
import sys
def CreatHeader(classname):
f=open(sys.argv[i]+".h",'w')
headermacro = "__"+classname.upper()+"_H"
f.write("#ifndef "+headermacro+'\r\n')
f.write("#define "+headermacro+'\r\n')
f.write('\r\n')
f.write("class "+classname+'\r\n')
f.write("{\r\n")
f.write(" "+classname+"();\r\n")
f.write(" "+classname+"(const " +classname+ "& i"+classname+");\r\n")
f.write("public:\r\n")
f.write(" ~"+classname+"();\r\n")
f.write(" static "+classname+"* getInstance()\r\n")
f.write(" {\r\n")
f.write(" static "+classname+ " instance;\r\n")
f.write(" return &instance;\r\n")
f.write(" }\r\n")
f.write("protected:\r\n")
f.write("private:\r\n")
f.write("};\r\n")
f.write("#endif //"+headermacro+'\r\n')
f.close()
def CreatSource(classname):
f=open(sys.argv[i]+".cpp",'w')
f.write("#include \""+classname+'.h\"\r\n')
f.write(classname+"::"+classname+"()\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.write(classname+"::"+classname+"(const " +classname+ "& i"+classname+")\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.write(classname+"::~"+classname+"()\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.close()
# Creat Singleton Class Header and Source File
for i in range(1, len(sys.argv)):
CreatHeader(sys.argv[i])
CreatSource(sys.argv[i])
class
import sys
def CreatHeader(classname):
f=open(sys.argv[i]+".h",'w')
headermacro = "__"+classname.upper()+"_H"
f.write("#ifndef "+headermacro+'\r\n')
f.write("#define "+headermacro+'\r\n')
f.write('\r\n')
f.write("class "+classname+'\r\n')
f.write("{\r\n")
f.write("public:\r\n")
f.write(" "+classname+"();\r\n")
f.write(" "+classname+"(const " +classname+ "& i"+classname+");\r\n")
f.write(" ~"+classname+"();\r\n")
f.write("protected:\r\n")
f.write("private:\r\n")
f.write("};\r\n")
f.write("#endif //"+headermacro+'\r\n')
f.close()
def CreatSource(classname):
f=open(sys.argv[i]+".cpp",'w')
f.write("#include \""+classname+'.h\"\r\n')
f.write(classname+"::"+classname+"()\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.write(classname+"::"+classname+"(const " +classname+ "& i"+classname+")\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.write(classname+"::~"+classname+"()\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.close()
for i in range(1, len(sys.argv)):
CreatHeader(sys.argv[i])
CreatSource(sys.argv[i])
单例class
import sys
def CreatHeader(classname):
f=open(sys.argv[i]+".h",'w')
headermacro = "__"+classname.upper()+"_H"
f.write("#ifndef "+headermacro+'\r\n')
f.write("#define "+headermacro+'\r\n')
f.write('\r\n')
f.write("class "+classname+'\r\n')
f.write("{\r\n")
f.write(" "+classname+"();\r\n")
f.write(" "+classname+"(const " +classname+ "& i"+classname+");\r\n")
f.write("public:\r\n")
f.write(" ~"+classname+"();\r\n")
f.write(" static "+classname+"* getInstance()\r\n")
f.write(" {\r\n")
f.write(" static "+classname+ " instance;\r\n")
f.write(" return &instance;\r\n")
f.write(" }\r\n")
f.write("protected:\r\n")
f.write("private:\r\n")
f.write("};\r\n")
f.write("#endif //"+headermacro+'\r\n')
f.close()
def CreatSource(classname):
f=open(sys.argv[i]+".cpp",'w')
f.write("#include \""+classname+'.h\"\r\n')
f.write(classname+"::"+classname+"()\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.write(classname+"::"+classname+"(const " +classname+ "& i"+classname+")\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.write(classname+"::~"+classname+"()\r\n")
f.write("{\r\n")
f.write("}\r\n")
f.close()
# Creat Singleton Class Header and Source File
for i in range(1, len(sys.argv)):
CreatHeader(sys.argv[i])
CreatSource(sys.argv[i])
相关文章推荐
- C语言实现插入排序与希尔排序与一些想法
- c/c++中define中的用法
- PAT1018剪刀锤子布
- C语言冒泡排序
- vector不得不说的故事
- 连通域相关
- noj1016_求R的n次幂(0.0<r<99.999,0<n<=25) 分析与C++代码
- C++类对象之间赋值产生内存泄漏的一种情况
- map::lower_bound/upper_bound的使用
- VC++ VS2010 MFC配合串口控件MSCOMM 的实际应用 - 打码机上位机软件 Demo 含例程
- VC++输入命令行参数
- 编译器警告C4930
- C++ lambda表达式的编译器实现..
- c++运算符重载字符串想加
- c++运算符重载++前缀后缀
- VC++ VS2010对比VC6 串口控件的方法变更
- c++符号运算符重载
- PAT甲级1113
- C++ Queues(队列)
- c++的++运算符重载