易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++函数参数,传值域传址的区别!!!

/*
* File: main.cpp
* Author: Vicky
*
* Created on 2010年5月8日, 下午2:47
*/
#include <iostream>
using namespace std;
class A{
public:
A(){
cout << "执行构造函数创建一个对象" << endl;
}
A(A&){
cout << "执行拷贝函数拷贝一个对象" << endl;
}
~A(){
cout << "执行析构函数删除一个对象" << endl;
}
};
void func(A a){
cout << "调用一个传值函数" << endl;
}
void func2(A &a){
cout << "调用一个传址函数" << endl;
}
A getA(A a){
return a;
}
A getA2(A &a){
return a;
}
/**
* 同getA4
*/
A* getA3(A &a){
return &a;
}
/**
* 同getA3
*/
A* getA4(A *a){
return a;
}
/*
* 按值传递的缺点...当创建一个新的对象之后,如果按值传递
* 将复制构造函数创建对象的副本,副本在使用完成之后,又会执行析构函数删除该副本!
*/
int main(int argc, char** argv) {
A a;
func(a);
func(a);
cout << "-------" << endl;
func2(a);
func2(a);
cout << "-------" << endl;
getA(a); // 将拷贝2个对象和删除2个对象,1个对象是作为参数传递的,另外一个对象是作为值返回的!
cout << "-------" << endl;

getA2(a); // 将拷贝1个对象和删除1个对象,该对象是作为值返回的!
cout << "-------" << endl;
getA3(a); // 将不拷贝a的对象做为参数,也不会拷贝a的对象作为返回值(包括删除)!
getA4(&a);
return (EXIT_SUCCESS);
}
执行构造函数创建一个对象
执行拷贝函数拷贝一个对象
调用一个传值函数
执行析构函数删除一个对象
执行拷贝函数拷贝一个对象
调用一个传值函数
执行析构函数删除一个对象
-------
调用一个传址函数
调用一个传址函数
-------
执行拷贝函数拷贝一个对象
执行拷贝函数拷贝一个对象
执行析构函数删除一个对象
执行析构函数删除一个对象
-------
执行拷贝函数拷贝一个对象
执行析构函数删除一个对象
-------
执行析构函数删除一个对象
运行成功(总计时间: 255毫秒)


相关文档:

判断C?行??境的程序

/*
**判断C?行??境的程序
*/
/*
**静?初始化
*/
int static_variable=5;
void
f()
{
 register int i1, i2, i3, i4, i5, i6, i7, i8, i9, i10;
 register char *c1, *c2, *c3, *c4, *c5, *c6, *c7 , *c8, *c9, *c10;
 extern int a_very_long_name_to_sec_how_long_they_can_be;
 double ......

Ubuntu linux系统下安装C kermit串口工具

解决步骤:
gylu@dell-desktop:~$ sudo apt-get install ckermit
显示安装过程
gylu@dell-desktop:~$gedit ~/.kermrc
输入下面内容后保存.kermrc退出:
   set line            /dev/ttyS0
    set speed    & ......

Beautify your c/c++ source code

http://uncrustify.sourceforge.net/
Ident code, aligning on parens, assignments, etc
Align on '=' and variable definitions
Align structure initializers
Align #define stuff
Align backslash-newline stuff
Reformat comments (a little bit)
Fix inter-character spacing
Add or remove parens on return ......

C/C++函数参数,传值域传址!!!

/*
* File: main.cpp
* Author: Vicky
*
* Created on 2010年5月8日, 下午2:47
*/
#include <iostream>
using namespace std;
void swap(int x, int y) {
cout << "x and y swap before : " << x << "\t" << y << endl;
int i = x;
x = y;
y = i; ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号