[C++_2]结构及函数指针&重载&内联
来源:互联网 发布:mac自动登录 灰色 编辑:程序博客网 时间:2024/05/08 05:14
2 结构指针(意义?)
通过成员指针(相对地址)访问结构成员:结构变量.*成员指针 结构指针->*成员指针
#include<iostream>#include<string>enum gender{F,M};using namespace std;struct Person{string name;int age;gender g;void printmem(){cout << "Name:" << name<< endl<<" Age:"<<age<<endl<<"Gender:"<<g<<endl;}};void showmem(Person a[], int n ,string Person::*p){for(int i =0; i< n; i++){cout << a[i].*p<< endl;}}int main(){Person p[5]={{"hzt",17,F},{"sdfasd",28,M},{"weifjoi",89,F},{"dsjfoiwe",1,F},{"awei",99,M}};cout << "******************************\n";showmem(p,5,&Person::name);void (Person::*sh)() = &Person::printmem;cout << "******************************\n";(p[2].*sh)();cout << "******************************\n";(p->*sh)();return 0;}
3 结构体与函数地址输出特性
C++中把结构体成员地址和函数地址在输出时强制转换成true,但可以通过联合输出函数地址,C语言可以输出地址。因为C++觉得成员地址只能用来访问成员,函数地址只能用来调函数,禁止输出两者地址,保证安全
4 函数重载
根据调用函数的参数类型来决定调用哪一个函数,重载函数的函数名相同,只要参数类型或个数不一样就可以,与返回类型无关重载的;实质是编译器把重载的函数在内部改了名字,表面上是同一个名字
。
4.1 extern "C"
表示函数名不变,用于跨越模块,编译器,可以被外部调用
4.2 形参默认值
形参的默认值只能靠右写,因为传参数的时候是从左向右传;函数的声明和定义分开时,形参的默认值规定放在声明中,否则会冲突
注意:
void f(int);
void f(int ,bool=true); //二者是重载函数
如果f(20),这样会造成模糊,不知调哪个
5 内联函数
内联只是个请求,不一定实现; 函数在调用时把当前函数的地址保存到栈里,执行完返回来,实参复制到形参, 返回值复制一份传递,这些都要花空间和时间。 宏函数可以实现节约空间和时间,不过宏函数有缺陷。
inline,功能上和宏一样,但并不是简单字符串替换,比宏更安全。可以省去时间空间开销。如果成员函数在头文件里的类声明里实现,编译器会自动给其加上inline
0 0
- [C++_2]结构及函数指针&重载&内联
- C++:内联函数、重载函数、递归、补码
- 【从C到C++学习笔记】内联成员函数/成员函数重载及缺省参数
- 五、类与对象(一)内联成员函数、成员函数重载、类和结构体、this指针
- 细嚼慢咽C++primer(3)——引用形参,内联函数,重载函数,指向函数的指针
- 函数 默认值、重载、内联
- C++【函数(重载/缺省参数/哑元/内联)】
- 【C++】内联inline、继承、重载与虚函数的解释
- 内联函数 函数的重载
- 函数指针及结构体
- C++ 函数重载、指针及引用
- Cpp Primer<<学习函数-重载函数_2
- C++函数重载,默参,内联
- C语言结构体及typedef关键字定义结构体别名和函数指针的应用
- 内联函数&&函数重载&&函数缺省值
- 内联函数、递归函数和重载函数
- C++:布尔类型bool,函数重载、参数缺省值、哑元参数、内联函数、引用
- C/C++的区别(默认值、内联函数、函数重载、const、引用、参数、返回值)
- 好的用户界面-界面设计的一些技巧
- C/C++中sprintf的用法
- 我们不能计划生活,我们只能为生活做好准备
- 2012蓝桥杯【初赛试题】干支纪年
- 学习笔记----S3C2440 从NANDFLASH启动的设计原理与过程
- [C++_2]结构及函数指针&重载&内联
- 安卓开发拨号器调用
- 我是如何在Tizen app大赛中获奖的
- sql用了leftjoin 没有用where得不到最左表全部数据
- Swing JList组件
- 一路有你
- 新学到的概念
- Skeletal Animation(骨骼动画)
- 一些幸福的东西就会离你越远