`
wsql
  • 浏览: 11776570 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

C++成员函数,非成员函数,友元函数,隐式类类型转换

 
阅读更多

博客的所有内容都是个人理解,难免有理解错误的地方,欢迎大家多多拍砖!

成员函数是指在类内部定义的函数,非成员函数是指在某个命名空间或者全局空间内的函数,友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。成员函数与非成员函数的最大区别是,成员函数可以是虚拟的。

其中init是testVar的成员函数,testPrint是全局空间的非成员函数,print是testVar的友元函数。

下边介绍一下隐式转换,当一个类的构造函数的参数列表只有一个参数时,这种情况下就定义了从形参类型到该类类型的一个隐式转换。

testConcerse test;test.compare(15); 在这种情况下就发生int到类testConverse 的隐式转换。

在有些情况下,不允许进行隐式转换,这样可以把构造函数设置为explicit。

编译器在必要时会对函数的参数列表的每个成员变量进行隐式转换,决不会对成员函数所在的对象(即,成员函数中的*this指针所对应的对象)进行转换。





分享到:
评论

相关推荐

    C++ Primer第四版【中文高清扫描版】.pdf

    12.4.4 隐式类类型转换 393 12.4.5 类成员的显式初始化 396 12.5 友元 396 12.6 static类成员 398 12.6.1 static成员函数 400 12.6.2 static数据成员 400 小结 403 术语 403 第13章 复制控制 405 13.1 复制构造函数...

    新手学习C++入门资料

    上面两个都是C风格的强制类型转换,C++还增加了一种转换方式,比较一下上面和下面这个书写方式的不同: long int el=123; short i=int (el); float m=34.56; int i=int (m); 使用强制类型转换的最大好处...

    C++ Primer中文版(第5版)李普曼 等著 pdf 1/3

     7.5.4 隐式的类类型转换 263  7.5.5 聚合类 266  7.5.6 字面值常量类 267  7.6 类的静态成员 268  小结 273  术语表 273  第Ⅱ部 C++标准库 275  第8章 IO库 277  8.1 IO类 278  8.1.1 IO对象无拷贝或...

    C++Primer(第5版 )中文版(美)李普曼等著.part2.rar

     7.5.4 隐式的类类型转换 263  7.5.5 聚合类 266  7.5.6 字面值常量类 267  7.6 类的静态成员 268  小结 273  术语表 273  第Ⅱ部 C++标准库 275  第8章 IO库 277  8.1 IO类 278  8.1.1 IO对象无拷贝或...

    Effective C++

    条款19:分清成员函数,非成员函数和友元函数 条款20:避免PUBLIC接口出现数据成员 条款21:尽可能使用CONST 条款22:尽量用传引用而不用传值 条款23:必须返回一个对象时不要试图返回一个引用 条款24:在函数重载与设定...

    C++和面向对象数值计算

    6.4 显式和隐式类型转换 6.5 效率和运算符重载 6.6 共扼梯度算法 6.7 练习 第7章 模板 7.1 类模板 7.1.1 成员和友元定义 7.1.2 模板实例化 7.1.3 模板参数 7.1.4 类型等价 7.1.5 用户定义...

    C++大学教程,一本适合初学者的入门教材(part1)

    8.4 用作类成员与友元函数的运算符函数 8.5 重载流插入与流读取运算符 8.6 重载一元运算符 8.7 重载二元运算符 8.8 实例研究:Array类 8.9 类型之间的转换 8.10 实例研究:String类 8.11 重载十十与—— ...

    C++大学教程,一本适合初学者的入门教材(part2)

    8.4 用作类成员与友元函数的运算符函数 8.5 重载流插入与流读取运算符 8.6 重载一元运算符 8.7 重载二元运算符 8.8 实例研究:Array类 8.9 类型之间的转换 8.10 实例研究:String类 8.11 重载十十与—— ...

    Effective.C++.中文第二版.50条款doc文档.chm

    条款19: 分清成员函数,非成员函数和友元函数 条款20: 避免public接口出现数据成员 条款21: 尽可能使用const 条款22: 尽量用“传引用”而不用“传值” 条款23: 必须返回一个对象时不要试图返回一个引用 条款24: 在...

    C++大学教程

    C++大学教程(目录) 第1章 计算机与C++编程简介-------------------------------------------------1 1.1 简介--------------------------------------------------------------1 1.2 什么是计算机--------...

Global site tag (gtag.js) - Google Analytics