C++愤恨者札记1——类对象作为函数参数的数据传递过程
C++愤恨者札记1——类对象作为函数参数的数据传递过程
C++繁杂的机制,加上枯燥的教科书,再加上无法回避地要使用它,注定要造就一批C++愤恨者。本文作为C++愤恨者札记系列第一篇,从汇编角度,观察类对象作为函数参数时的数据传递过程。
若没有特殊说明,编译器使用的是VC++,反汇编使用的是Windbg.下面是它们的版本号:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
测试代码如下:
#include <iostream>using namespace std;class Node{public:Node(){}Node(Node& n){/*啥都不做*/}int data;};void ShowNodeData( Node n){cout << n.data << endl;}void main(){Node n;n.data = 100;ShowNodeData(n);//参数得不到初始化}