c++学习笔记(2)类的声名与实现的分离及内联函数
2015-07-21 11:25
363 查看
一、类的声名与实现的分离:
和c函数声明与实现分离类似
有.h : 类的声明
.cpp : 类的实现
在在一个类的cpp中应该包含本类的.h文件
在cpp中类的使用:例:
在主函数中使用此类只需要在头文件中包含.h的名字即可。
二、内联函数
直接定义在类里面是内联函数,在cpp里面用inline
内联函数要跟类的声明写在同一个文件中,否则编译会出错,就是内联函数最好写在声明类的.h文件中,而不是像一般函数那样写在实现类的.cpp文件中。 当然,内联函数还有另外一种写法,就是直接写在类中,此时,不必使用“inline”关键字。
内联函数只是一种编译机制,用上面两种形式声明的函数仅仅是建议编译器进行内联,而编译器是否内联不一定。正如前面所说,函数调用的开销只是对小的函数不可忽略,对于重量级的函数还是可以忽略的,而且在绝大多数的场合,函数调用才是人间正道,才是解决问题的最佳。所以大多数编译器并不把带有循环、递归等或者代码比较多的函数进行内联编译,有的甚至不允许声明成内联的。
和c函数声明与实现分离类似
有.h : 类的声明
.cpp : 类的实现
在在一个类的cpp中应该包含本类的.h文件
在cpp中类的使用:例:
//Circle类 //Circle.h class Circle{ private: double radious; public: Circle(); }; //Circle.pp #include “Circle.h” Circle::Circle(){ Radius=1; }
在主函数中使用此类只需要在头文件中包含.h的名字即可。
二、内联函数
直接定义在类里面是内联函数,在cpp里面用inline
内联函数要跟类的声明写在同一个文件中,否则编译会出错,就是内联函数最好写在声明类的.h文件中,而不是像一般函数那样写在实现类的.cpp文件中。 当然,内联函数还有另外一种写法,就是直接写在类中,此时,不必使用“inline”关键字。
内联函数只是一种编译机制,用上面两种形式声明的函数仅仅是建议编译器进行内联,而编译器是否内联不一定。正如前面所说,函数调用的开销只是对小的函数不可忽略,对于重量级的函数还是可以忽略的,而且在绝大多数的场合,函数调用才是人间正道,才是解决问题的最佳。所以大多数编译器并不把带有循环、递归等或者代码比较多的函数进行内联编译,有的甚至不允许声明成内联的。
相关文章推荐
- Online Judge System For SzNOI 题库 语法百题 C++ d008
- Online Judge System For SzNOI 题库 语法百题 C++ d007
- 判断字符串是否为回文数(c++ 顺序栈)
- Online Judge System For SzNOI 题库 语法百题 C++ d006
- 【C++】文件的读取与写入
- CString、string、char*之间的区别和转换
- C语言字符串中使用宏替换
- C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
- Online Judge System For SzNOI 题库 语法百题 C++ d005
- Online Judge System For SzNOI 题库 语法百题 C++ d004
- leetcode之链表-单链表反转-C++
- c++ 计蒜客第11题移除数组重复元素
- 黑马程序员_C语言基础_分支结构(if……else,switch)
- Online Judge System For SzNOI 题库 语法百题 C++ d003
- C++ 操作符重载
- C++中string和vector用法总结
- Online Judge System For SzNOI 题库 语法百题 C++ d002
- c++ map 的基本操作
- [C++设计模式]template 模板方法模式
- Online Judge System For SzNOI 题库 语法百题 C++ d001