从一个C++程序谈起──引用、堆栈参数传递及其它 刘宝宏 2001年 14期 C++的参数传递、引用的使用及内存的分配是初学者比较头疼的,下面我们就通过一个实例来讲解它们的使用方法,通过该实例相信读者会对这些概念有一个清晰的认识。程序代码如下:    #include “stdafx.h”    #include “iostream.h”    #include “string.h”    class Person{    private:    char *m_pName:    public:    Person(char *);    ~Person();    char* getName(Person);    };    Person::Person(char*s){    int l=strlen(s)+1;    m_pName= new char[l];    strcpy(m_pName,s);    }    Person::~Person(){    Person* p;    p=this;    delete [] m_pName;    }    char* Person::getName(Person person){    return person.m_pName;    }    int main(int argc, char* argv[]){    Person me(“John”);    Person* p1=&me;    Person you(“Tom”);    Person* p2=&you;    cout<nBlockUse))。原来是程序在调用dbgHeap.c时出了问题。为了弄清问题的根源我们给程序加入一些调试行,修改如下:    Person::~Person(){    Person* p;    p=this;    delete [] m_pName;    }    char* Person::getName(Person person){    Person* p;    char* ch;    ch=person.m_pNamep;    p=&person;    return person.m_pName;    }    int main(int argc, char* argv[])    {    Person me(“John”);    Person* p1=&me    Person you(“Tom”);    Person* p2=&you;    cout<