在C++的虚继承中要注意的一个传值问题

// tea.cpp : Defines the entry point for the console application.

//

 

#include "stdafx.h"

#include <iostream>

using namespace std;

class justtest1

{

public:

       virtual void display()

       {

              cout<<"justtest1"<<en dl ;

       }

};

class justtest2:public justtest1

{

public:

       virtual void display()

       {

              cout<<"justtest2"<<en dl ;

       }

};

 

void displayclassname(justtest1 test)

{

       test.display  ();

}

 

void displayclassname2 (justtest1& test)

{

  test.display  ();

}

int main(int argc, char* argv[])

{

       justtest 1 a ;

       justtest2 b;

       a.display  ();

       b.display  ();

    displayclassname(b); //输出结果是test1,

                                  //在不使用引用的情况下会发生slicing(切割)

    displayclassname2(b);//输出结果是test2

                                     //使用了reference,情况没改变

       return 0;

}

 

以后C++中一律使用引用传值

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值