C++:对于class来说,什么函数可以在class里面定义,什么函数最好在class外面定义(我的理解)
2014-04-15 16:55
603 查看
2014.4.15
今天在看Data Structures, Algorithms, and Applications in C++的3.3和3.4时,特别是3.4的一句话,说用linked list和用formula representation两种实现方式实现同一个数据结构(顺序表LinearList)时,LinearList的class中很多内容(不是全部内容,如private中的数据要随着实现改变)是完全不用变的,只有具体的实现要改变。
能达到这种效果是以下原因:
1:LinearList把和不同实现方式无关的函数都放在class里面实现了,如Length函数{return length;}。
同时将和具体实现有关的函数只在class里面声明而没有具体实现,如Find,Delete,Insert函数。
(因此,在定义class时,如果以后想用不同实现方式来达到不同的效率,可以从这里得到启发:将与具体实现无关的函数放在class里面实现;与具体实现有关的函数放在别的地方实现,在class里只给出声明)。
今天在看Data Structures, Algorithms, and Applications in C++的3.3和3.4时,特别是3.4的一句话,说用linked list和用formula representation两种实现方式实现同一个数据结构(顺序表LinearList)时,LinearList的class中很多内容(不是全部内容,如private中的数据要随着实现改变)是完全不用变的,只有具体的实现要改变。
能达到这种效果是以下原因:
1:LinearList把和不同实现方式无关的函数都放在class里面实现了,如Length函数{return length;}。
同时将和具体实现有关的函数只在class里面声明而没有具体实现,如Find,Delete,Insert函数。
(因此,在定义class时,如果以后想用不同实现方式来达到不同的效率,可以从这里得到启发:将与具体实现无关的函数放在class里面实现;与具体实现有关的函数放在别的地方实现,在class里只给出声明)。
相关文章推荐
- C++中可以用struct和class来定义类型,这两种类型有什么区别
- 【ThinkingInC++】51、最好还是把定义放到外面,用inline来实现内联,而不是在类里面定义默认为内联
- 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
- c++函数内部可以返回函数内部定义的指针 但是不能返回函数内部定义的数组
- C++用typedef定义函数指针类型typedef可以用于定义函数指针类型
- 在用C++写函数时,在函数定义中的WINAPI代表什么含义?
- 在c++中,静态数据成员可以被非静态成员函数调用吗?如果可以调用的话那为什么还要定义静态成员函数呢
- 【转】深入理解C++的动态绑定和静态绑定 & 不要重定义虚函数中的默认参数
- 对于一个糟糕的设计来说,通过阅读C++代码你可以很容易地识别出它。
- c++中函数只声明,不定义(不调用该函数)可以通过编译并运行
- 对于GetLogicalDrives这个函数,返回一个32位的DWORD类型的值,前26位可以分别表示a-z盘,那后6位表示什么?
- 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
- __sched 在函数定义里面是什么意思?
- C++中inline函数的定义为什么要放在头文件中?头文件中“只定义一份”是什么意思?const object 和inline函数是“一次定义规则”
- C++中类定义可以写在.h文件,但函数定义却不行
- 可以自己定义数据结构,然后用PCL里面的函数运行了!
- C/C++语言之通过定义指针函数方式来实现在一个cpp文件里面获取另外一个cpp文件函数的返回值
- C++中可以接受任意多个参数的函数定义方法(详解)
- c++对于虚函数,纯虚函数,普通函数的理解
- C也可以通过精心封装某些函数功能实现重用,那C++的类有什么优点吗(从面向对象的三大属性进行分析)