类中成员函数调用问题
来源:互联网 发布:惠普手机打印软件 编辑:程序博客网 时间:2024/05/23 15:04
虚函数执行时,跟指针类型没有关系;跟作用域和虚函数表(new出来的对象有关)有关系;
如果有作用域,根据作用域执行(不会走虚函数表,直接到代码段找),与new的类型和指针类型没有关系;
如果没有作用域关键词则根据虚函数表(与new对象有关)执行;
非虚重写函数执行时:跟new出来的对象没有关系,跟作用域和指针类型有关系
如果有作用域,则根据作用域调用(直接到代码段找);
如果没有作用域关键词则根据指针类型调用,与new出来的对象类型无关;
父类和子类各自单独拥有的函数:只与函数指针类型有关;
#include<iostream>
class Father{
public:
Father()
{
printf("father 构造!\n");
}
void show()
{
printf("FathterShow!\n");
}
virtual void virtualshow()
{
printf("father virtualshow!\n");
}
~Father()
{
printf("Father 析构!\n");
}
};
class Son :public Father
{
public:
Son()
{
printf("Son 构造!\n");
}
void show()
{
printf("SonShow!\n");
}
virtual void virtualshow()
{
printf("Son virtualshow!\n");
}
~Son()
{
printf("Son 析构!\n");
}
};
虚函数执行:如果有作用域关键字则执行的虚函数只与作用域有关,与new出来的对象类型没有关系,图1,new Father,但是由于Son::作用输出Son中的虚函数;
虚函数执行:
new 出来的是Father,则虚函数表中为Father类中的函数,调用父类中的虚函数;与指针类型无关;若new出来的是Son类型的则虚函数表中的为子类的中的函数,调用子类中函数
父子间非虚函数类成员重写:跟new出来的对象没有关系,跟作用域和指针类型有关系
父类和子类各自单独拥有的函数:只与函数指针类型有关;//不推荐定义父类的对象,去调用子类独有的函数!
1 0
- 类中成员函数调用问题
- 类成员函数中调用socket接口close()问题
- C++中成员函数调用数据问题
- 类模板成员函数的调用问题
- 构造函数中调用虚成员函数问题
- 类成员函数调用
- c++结构体中包含类对象成员的问题 malloc函数不能调用构造函数 new可以
- 关于类成员函数指针的调用问题
- 调用模板类的模板成员函数的问题
- 类的const成员函数的调用问题
- 在成员函数中调用构造函数
- 成员函数中调用虚函数
- 在一个类的成员函数中调用另一个类的成员函数
- VC多线程中全局函数如何调用对话框类成员变量及成员函数
- [转]在类的成员函数中调用delete this
- 在类的成员函数中调用delete this
- 在类的成员函数中能不能调用delete this
- c++中类的成员函数调用剖析
- 导入csv文件时,由于可能丢失数据,所以无法转换该值
- Activity的生命周期全面分析
- java中static{}语句块详解
- 安装交叉编译工具arm-none-linux-gnueabi-gcc——Linux上编译在android上运行的c程序
- C++11 中值得关注的几大变化(详解)
- 类中成员函数调用问题
- armeabi与armeabi-v7a的区别,绝对干货!
- 【Android】Android清除本地数据缓存代码
- 神经网络深入 ,源码
- DBoW2算法原理介绍
- tensor理解
- 编写可读性代码的艺术(一)
- Linux系统--进程地址空间之存储器区域
- 死锁