首页 > 技术文章 > 类对象做函数参数(传值和传引用)

audi-car 2015-04-27 17:33 原文

一、传引用

#include "stdafx.h"
#include <iostream>
using namespace std;

class A
{
public:
    virtual void show(){cout<<"A"<<endl;}
};
class B:public A
{
public:
    virtual void show(){cout<<"B"<<endl;}
};
class C:public A
{
public:
    virtual void show(){cout<<"C"<<endl;}
};

void show(A &a)   //void show (A a)
{
    a.show();
}

int main()
{
    A a;
    B b;
    C c;
    show(a);
    show(b);
    show(c);
    return 0;
}

执行结果:

image

二、传值

#include "stdafx.h"
#include <iostream>
using namespace std;

class A
{
public:
    virtual void show(){cout<<"A"<<endl;}
};
class B:public A
{
public:
    virtual void show(){cout<<"B"<<endl;}
};
class C:public A
{
public:
    virtual void show(){cout<<"C"<<endl;}
};

void show (A a)//void show(A &a)   //void show (A a)
{
    a.show();
}

int main()
{
    A a;
    B b;
    C c;
    show(a);
    show(b);
    show(c);
    return 0;
}

image

推荐阅读