C++虚函数用法举例

program1:class A{

public:

void print(){ cout<<”This is A”<<endl;}

};

class B:public A{

public:

void print(){ cout<<”This is B”<<endl;}

};

int main(){  

A a;

B b;

a.print();

b.print();

}

输出:

This is AThis is B

program2:
int main(){   //main2

A a;

B b;

A* p1=&a;

A* p2=&b;

p1->print();

p2->print();

}

输出:

This is A
This is A

program3:
class A{

public:

virtual void print(){ cout<<”This is A”<<endl;}  //现在成了虚函数了

};

class B:public A{

public:

void print(){ cout<<”This is B”<<endl;}  //这里需要在前面加上关键字virtual吗?

};

输出:
This is AThis is B

干货:
如果子类覆盖的父类的虚函数则父类的指针或引用实际指向子类的对象那通过该指针或引用调用虚函数时,则将调用子类的(虚)函数

如果不是虚函数,则将调用父类的函数
时间: 2024-08-29 21:56:41

C++虚函数用法举例的相关文章

c++ 字符串函数用法举例

字符串切割: substr 函数原型: string substr ( size_t pos = 0, size_t n = npos ) const; 解释:抽取字符串中从pos(默认为0)开始,长度为npos的子字串 #include <iostream> #include <string> using namespace std; int main() { string s = "hello"; cout << s.substr() <&

C++抽象类与纯虚函数实战举例

虚函数与纯虚函数请参考:http://blog.csdn.net/hackbuteer1/article/details/7558868 #include <iostream> using namespace std; class Animal { public:     virtual void eat()=0;     virtual void sleep()=0; }; class Cat:public Animal { public:     void eat()     {     

4 虚函数用法

分析下列程序: #include<iostream> #include<string.h> using namespace std; class Base{ public: Base() { echo(); } virtual void echo() { printf("Base"); } }; class Derived : public Base { public: Derived() { echo(); } virtual void echo() { pr

javascript版in_array函数用法举例

javascript版in_array函数,用于判断数组中是否存在特定值. 判断一个字符串或者数字是否在数组内,很多程序语言都有这样一样专门的函数,比如PHP的in_array().那么JS有木有呢,很遗憾,JS木有这样的函数,于是想到伟大的JQ是否封装了这个函数,找到了API,JQ的确封装了这个函数jQuery.inArray( value, array ) 搜索数组中指定值并返回它的索引(如果没有找到则返回-1).value要搜索的值.array一个数组,通过它来搜索.当然,处于学习,自己也

转 C++构造函数、析构函数、虚函数之间的关系

C++构造函数.析构函数.虚函数之间的关系 1. 如果我们定义了一个构造函数,编译器就不会再为我们生成默认构造函数了.2. 编译器生成的析构函数是非虚的,除非是一个子类,其父类有个虚析构,此时的函数虚特性来自父类.3. 有虚函数的类,几乎可以确定要有个虚析构函数.4. 如果一个类不可能是基类就不要申明析构函数为虚函数,虚函数是要耗费空间的.5. 析构函数的异常退出会导致析构不完全,从而有内存泄露.最好是提供一个管理类,在管理类中提供一个方法来析构,调用者再根据这个方法的结果决定下一步的操作.6.

Numpy中的tile函数用法

0.引言 在看机器学习实战这本书时,遇到numpy.tile(A,B)函数,开始没太明白这个函数用法,网上帖子也不太详细,经过一番试验后基本搞明白基本用法,分享给大家. 1.函数定义 tile函数是模板numpy.lib.shape_base中的函数. 函数形式:tile(A,rep) 功能:重复A的各个维度 参数类型: - A: Array类的都可以 - rep:A沿着各个维度重复的次数,从低维向高维重复 -A的类型众多,几乎所有类型都可以:array, list, tuple, dict,

C++中virtual(虚函数)的用法

转载:http://blog.csdn.net/foreverhuylee/article/details/34107615 在面向对象的C++语言中,虚函数(virtual function)是一个非常重要的概念. 什么是虚函数: 虚函数是指一个类中你希望重载的成员函数 ,当你用一个  基类指针或引用   指向一个继承类对象的时候,调用一个虚函数时, 实际调用的是继承类的版本. --摘自MSDN                                                 

C++ 纯虚函数接口,标准 C 导出 DLL 函数的用法

CMakeLists.txt project(virtual) # 创建工程 virtual add_library(virtual SHARED virtual.cpp) # 创建动态连接库 libvirtual.dll add_executable(main main.cpp) # 创建运行程序 main.exe target_link_libraries(main virtual) # 让 main.exe 连接 libvirtual.dll virtual.h #pragma once

C++:纯虚函数与抽象类

5.4.3 纯虚函数和抽象类 纯虚函数是一个在基类中说明的虚函数,它在该基类中没有定义,但是要求在派生类中根据需要对它进行定义,或仍然说明为纯虚函数. 声明纯虚函数的一般格式是: virtual 函数类型 函数名(参数表)=0: 纯虚函数的作用是:在基类中为其派生类保留一个函数的名字,以便派生类根据需要对它进行重新定义.纯虚函数没有函数体,它最后面“=0 ”并不表示函数的返回值是0,它只是形式上的作用,告诉编译系统这是纯虚函数.纯虚函数不具有函数的功能,不能被调用. //应用举例 #includ