首页 > 其他分享 >关于传递引用会导致的问题

关于传递引用会导致的问题

时间:2023-04-05 09:44:26浏览次数:28  
标签:导致 cout namespace 多态 传递 引用 include

复习effective c++的时候看到:

于是来验证一下,果然会出现对应问题:

#include <iostream>
#include <vector>
#include <math.h>
#include <algorithm>
#include <unordered_set>
#include <set>
#include <unordered_map>
#include <queue>
using namespace std;

class Student {
public:
    virtual void  print() {
        cout << "this is a Student object" << endl;
    }
};

class subStudent : public Student {
public:
    void print() {
        cout << "this is a subStudent object" << endl;
    }
};



//void validateStudent(const Student& s) {
//    cout << "validateStudent(const Student&) is called" << endl;
//    
//}

void validateStudent(Student s) {
    cout << "validateStudent(Student) is called" << endl;
    s.print(); //虽然被重载了,但是到这里依然会调用父类的print方法
                //因此还是用指针来实现多态好一些?用引用的话会有一些意想不到的问题出现。
}


int main()
{
    subStudent s;
    validateStudent(s);  // 调用了 validateStudent(Student)
    s.print();           // 调用了 Student::print()

	return 0;
}

因此如果想实现多态的话还是使用指针来完成这一目的好一些。

标签:导致,cout,namespace,多态,传递,引用,include
From: https://www.cnblogs.com/swx123/p/17288855.html

相关文章

  • 字节码引用检测原理与实战
    一、字节码与引用检测1.1Java字节码本章中的字节码重点研究Java字节码,Java字节码(Javabytecode)是Java虚拟机执行的一种指令格式。可以通过javap-c-vxxx.class(Class文件路径)命令来查看一个Class对应的字节码文件,如下图所示:1.2字节码检测字节码检测本质就是对.java或.kt文件......
  • Django外键引用User模型时显示username的解决方法
    问题需求:在DjangoAdmin后台模型管理中,引用User外键的字段,显示的是username(用户名)。下拉菜单要显示姓名(last_name和first_name,外加username保持唯一性、可辨别性)。使用代理模型(proxymodel)fromdjango.dbimportmodelsfromdjango.contrib.auth.modelsimportUser#创建代......
  • 子组件传递数据给父组件的三种方法
    1.props<template><!--App.vue--><divid="app"><!--向子组件中传入函数--><Student:receive="receive"></Student></div></template><script>importStudentfrom'./co......
  • 【服务器数据恢复】raid5多块硬盘离线导致存储的卷无法挂载,EXT3文件系统元数据被破坏
    服务器数据恢复环境&故障:某企业一台存储设备,一组由16块硬盘组建的raid5磁盘阵列。管理员在巡检过程中发现该存储的卷无法挂载,经过检查发现存储设备的raid5磁盘阵列中有2块硬盘离线。服务器数据恢复过程:1、检查该存储当前状态,通过storagemanager将存储的日志状态备份。2、将存......
  • 易基因: oxRRBS+RRBS揭示炎症性肠病导致发育异常的表观遗传机制|甲基化研究
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。2020年12月31日,美国明尼苏达大学NataliaY.Tretyakova教授团队在《IntJMolSci》杂志发表题为“Multi-OmicsCharacterizationofInflammatoryBowelDisease-InducedHyperplasia/DysplasiaintheRag2-/-/Il10......
  • 线程间数据传递之ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal
    前言在JAVA中线程之间传输数据的方式有多种,而本文旨在探讨ThreadLocal及其衍生类的使用场景。使用场景业务系统的参数传递:在我们的业务系统中可能会用到许多公共参数,可能是用户的token信息,在我们链路中可能某一个方法需要用到它,那么我们又不想一层层的传递它。分布式系统要打......
  • C++ 引用
    (一)多重含义C++中的*和&有多重含义,在不同的使用条件下有不同的意思:1.*int*p=&a;/1.指针a=a*b;/2.乘法*p=100;/3.指向2.&intc=a&b;/1.位运算转换为二进制int*p=&a;/2.取地址inta=100;int&ar=a;/3.引用(二)引用的......
  • 内网渗透之哈希传递攻击
    (作业记录0x01利用VMware的克隆功能克隆一台win7,取名为win7-2。0x02启用win7和win7-2的系统管理员Administrator账户及设置密码法一启用管理员账号administrator设置密码为123456法二打开开始菜单,右击“计算机”,选择“管理”。在“计算机管理”窗口,依次定位到“本......
  • PA 懒加载(循环引用,N+1,使用关联对象)(二)
    这次具体讲述一下,对于懒加载遇到(循环引用,N+1,使用关联对象)的解决方案。为了方便大家模拟操作,我会完整说一下不想看过程的,直接看总结。 一建表创建School和UserSchoolSETNAMESutf8mb4;SETFOREIGN_KEY_CHECKS=0;--------------------------------Tablestructu......
  • 性能分析之dubbo性能参数导致单cpu高
    今天记录一个小问题。问题不大,也没什么分析的逻辑可以讲的。但是想着比较典型,所以就写一写。某年某月的某一天,就像一张破碎的脸......不对,串台了。这一日,一个朋友发来个问题。听起来是个问题。一个线程忙,这种情况应该比较好处理吧。再看一下CPU的状态是什么样,记住这一步是看进程......