C++ 什么要有转换(改写用户代码)呢
The C++ Object model 里面2.3节,程序转换语义学中说了。
已知有这样的定义
X x0;
// 下面的函数
void _foo()
{
X x1(x0);
X x2 = x0;
X x3 = X(x0);
//Deal with x0 x1 x2 x3
}
_foo函数会被大致转换为
void _foo()
{
// 重新定义下面三个变量,删除初始化操作
X x1;
X x2;
X x3;
//编译器安插copy constructor 函数的调用操作
x1.X::X(x0);
x2.X::X(x0);
x3.X::X(x0);
}
程序的所有这些转换,难道都是基于要调用copy constructor 考虑的么?
相关推荐
live555 的openRTSP 改写
对live555中的实例openRTSP进行了修改,使用类的形式形成客户端
改写ARToolKit5.4例子simpleLite的MFC单文档程序
程序是利用VS2017单文档程序修改ARToolkit5.4的示例simpleLite,源程序是控制台应用程序。
VC版水波特效根据罗云彬汇编代码改写
VC版水波特效根据罗云彬的汇编代码改编并作了改进,参考了VB版本,及网上相关资料,资料也一起上传。采用VS2008编译,并进行了操作系统版本控制,Window XP也可运行。
J2cpp-Java到C++的转换工具
J2cpp 是一个 Eclipse 的插件,可以将 Java 类转为 C++11 类。需要注意的是生成的 C++ 代码在进行转换处理之前是没法编译的,你必须对生成的代码进行二次处理。 安装地址:http://tsug.github.com/j2cpp/update/ 转换示例:http://www.oschina.net/code/snippet_12_12650
如何把C++的源代码改写成C代码的方法
C++解释器比C语言解释器占用的存储空间要大,想要在某些特定场合兼容C++代码,同时为了节省有限的存储空间,降低成本,也为了提高效率,将用C++语言写的源程序用C语言改写是很有必要的。 C++与C区别最大的就是C++中的类的概念和特性,将C++改为C的问题,就转换成如何将类化去的问题。 方法有两种: 将C++中的面向对象特征去掉,先全部理解源代码的逻辑,然后改写; 是在C中保留面向对象的部分特征,用结构体实现类的功能。 第一种方法,对于类的数目很少的情况还可以,如果类的数目比较多,全部理解源代码,然后重写就很耗时间,而且很容易出错,更甚者,如果遇到大的项目想全部理解源代码几乎是不可能的



