1 基类指针指向基类对象(正常使用)
2 派生类指针指向派生类对象(函数名相同,不管是不是虚函数,调用的都是派生类的函数)
3 基类指针指向派生类对象(函数名相同,虚函数的话调用的是派生类的,非虚函数的话调用的是基类的)
4 派生类指针指向基类对象(一般不要这么用)
参考资料:
http://blog.csdn.net/monkeyduck/article/details/155...
分类:
其他好文 时间:
2014-05-05 13:15:52
阅读次数:
273
在看项目代码时,发现有个调用,明明调用的函数基类的,搞不懂为什么会调用到派生类的,这是个虚函数,我想肯定是指针的问题,我又想到了是绑定时候的问题thrTransData::thrTransData(){
m_spTimerFactory = NEWSP(TimerFactory); ne...
分类:
其他好文 时间:
2014-05-04 10:28:00
阅读次数:
220
用基类的指针去转存派生类时除了上一篇boost::serialization 用基类指针转存派生类(错误多多,一波三折)之外,还有另一种更简单的方法:
用BOOST_CLASS_EXPORT宏。下面我们来分析怎样用BOOST_CLASS_EXPORT来实现
用基类的指针去转存派生类。
首先来看前面实例的一段代码:
void save()
{
std::ofstream ofs("t7.x...
分类:
其他好文 时间:
2014-05-04 09:48:50
阅读次数:
487
C++ Primer Plus学习笔记之继承类的初始化顺序
基类的构造函数,析构函数和操作符函数operator=是不能被派生类继承的;
那么,当创建一个派生类对象时,怎样调用基类的构造函数对基类的数据进行初始化呢???
答案是:构造函数执行时遵行先兄长(基类),再客人(对象成员),后自己(派生类)的顺序;
另一方面,执行析构函数时,先执行派生类的析构函数,再执行基类的析构函数。原因是,对...
分类:
编程语言 时间:
2014-05-04 09:41:27
阅读次数:
373
6.5 继承
当然,一门语言特性如果不支持继承那么名称类就失去了价值。子类继承父类的方法如下:
class DerivedClassName(BaseClassName):
.
.
.
名称BaseClassName必须定义在一个包含派生类定义的作用域中。在基类名称的位置上,其他随意表达式都是允许的、例如,当基类定义在其他模块中,这也是可用的。
class DerivedCl...
分类:
编程语言 时间:
2014-05-04 08:59:32
阅读次数:
364
第八章 用户界面(二)
在 WinForm 上使用控件
控件就是类,派生自 System.Windows.Forms.Control,由此类派生出的任何类都能显示在窗体上,只要将它添加到窗体对象的 Controls 集合中。
现在我们看一下用控件画树形的方法。WinForms 库定义了 TreeView 类,这是专门用于显示树形结构的;自然,我们就用这个控件来显示树。使...
分类:
其他好文 时间:
2014-05-04 00:08:55
阅读次数:
322
在派生类中序列化一个基类
假如有一个基类如下:
class student_info
{
public:
student_info() {}
virtual ~student_info() {}
student_info(const std::string& sn, const std::string& snm, const std::string& sg)
: name_(sn),...
分类:
其他好文 时间:
2014-05-03 21:41:12
阅读次数:
356
本篇是boost::serialization 用基类指针转存派生类(错误多多,一波三折)的姊妹篇,这里只不过做一个总结。
先来看一个基类
class base_class
{
public:
base_class(int m=0) : base_member_(0) {}
virtual ~base_class() {}
virtual void print_data() = 0;
...
分类:
其他好文 时间:
2014-05-03 21:24:33
阅读次数:
247
boost::serialization 也支持c++的多态,这样我们就可以通过使用基类的指针来转存派生类,
我们接着上一篇(
boost::serialization(2)序列化基类
)的例子来看:
基类和派生类的代码如下:
class student_info
{
public:
student_info() {}
virtual ~student_info() {}
s...
分类:
其他好文 时间:
2014-05-03 21:08:18
阅读次数:
280
提出疑问
当我们新建一个Qt的图形工程时,你有没有对如下代码感到好奇?MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow) 派生类继承的基类不同以往,竟然是带有参数的,那么这个怎么理解呢?...
分类:
编程语言 时间:
2014-05-03 16:27:01
阅读次数:
344