C++语言的多态性 与 C++类的虚函数有关引入一个问题:定义一个基类指针,指向派生类对象,然后根据指针调用相应的方法,会有什么效果?class CBase{public: virtual void vfun() { coutvfun(); pBase->fun(); // 输出...
分类:
编程语言 时间:
2015-06-27 23:55:33
阅读次数:
161
1.C和C++中struct有什么区别?
1>
C++中的struct类似于class,有变量,有构造函数、虚函数等,有继承,多态等类的特征;
2>
C中的struct只有变量,不能有函数,但是可以有函数指针
2.C++中的struct和class有什么区别?
在C++中,两者区别不大,但是有2个主要的区别
1>.
继承权限:str...
分类:
编程语言 时间:
2015-06-27 18:20:13
阅读次数:
279
本文转自:http://topic.csdn.net/t/20051220/09/4469273.html函数的inline属性是在编译时确定的, 然而,virtual的性质是在运行时确定的,这两个不能同时存在,只能有一个选择,文件中的inline关键字只是对编译器的建议,编译器是否采纳是编译器的事...
分类:
其他好文 时间:
2015-06-27 18:06:18
阅读次数:
137
有些函数是不能作为虚函数的,具体是哪些?之前也没总结过,现在梳理一下!
作为虚函数的函数,必须是类的成员函数,且具有继承性。
1.非类的成员函数,即 普通函数
它们没有继承性,即便声明为虚函数,也毫无意义。
2.构造函数
首先,构造函数是不能够被继承的,自然就不能声明为虚函数
其次,构造函数是用来执行初始化的,虚函数是用来实现多态性的。若尚未构造出来,如何实现多...
分类:
其他好文 时间:
2015-06-27 16:35:39
阅读次数:
115
最近看一些面试题,觉得如果自己被问到了,并不能很利落的回答出来。
一是从来没有这个意识,二是没有认真的梳理下。
下面对这些题做出分析,哈!个人能力有限,其中难免有疏漏,欢迎大家补充咯!
1.C和C++中struct有什么区别?
1>
C++中的struct类似于class,有变量,有构造函数、虚函数等,有继承,多态等类的特征;
2>
C中的struct只有变量,不...
分类:
编程语言 时间:
2015-06-27 11:46:01
阅读次数:
141
1 #include 2 #include 3 using namespace std; 4 5 class Animal{ 6 public: 7 Animal(string name) : name(name){} 8 void printName(){ 9 ...
分类:
其他好文 时间:
2015-06-27 11:25:45
阅读次数:
101
环境: windows xp 3 VC2008如果类A拥有虚函数,而类B普通继承自类A,那么一个类B的对象在内存布局里:类B的虚表会将类A虚表合并覆盖,然后先排列类A的数据,再排列类B的数据如果类B虚拟继承自类A,那么一个类B的对象在内存布局里:类B的虚表和内容都不会将类A的合并,在类B的虚表之后插...
分类:
其他好文 时间:
2015-06-27 11:16:26
阅读次数:
121
1. 函数return值与try块throw exception、函数接收参数与catch字句捕获异常相当类似(不仅声明形式相像,函数参数与exception传递方式都有三种:by value,by reference , )。2. 尽管函数调用与异常抛出相当类似,“从抛出端传递一个exceptio...
分类:
编程语言 时间:
2015-06-26 22:19:27
阅读次数:
197
1.前言
本篇文章的所有代码例子,如果是windows上编译运行,则使用的是visual studio 2013。如果是RHEL6.5平台(linux kernal: 2.6.32-431.el6.i686)上编译运行,则其gcc版本为4.4.7,如下所示:
[root@MiWiFi-R1CM ~]# gcc --version
gcc (GCC) 4.4.7 20120313 (Red H...
分类:
编程语言 时间:
2015-06-26 00:32:29
阅读次数:
152
class Base{
public:
virtual void f(){cout<<"Base::f"<<endl;}
virtual void g(){cout<<"Base::g"<<endl;}
virtual void h(){cout<<"Base::h"<<endl;}
};
typedef void (*Fun)(void);
int main(){
Base b...
分类:
编程语言 时间:
2015-06-25 23:03:04
阅读次数:
181