为了账号安全,请及时绑定邮箱和手机立即绑定
感谢老师 去学数据结构了
Watch 是Time 的友元
不把这个系列听完难受
学完了,虽然最后的提交一直不成功,马克一下吧。之后再接再厉,学习数据结构和算法设计了。
感谢老师。
真的很高兴一路走来 感谢慕课网 感觉james老师 我平常很少留言 但是今天真的非常的想纪念这个时刻 从C到C++一路学来 感觉自己真的有升华 也更加的自信 现在才大三 今年下半年参加秋招甚至以后的工作 我相信一定都有用到的地方 也希望自己能找到一份好的工作 感谢mocc 感谢james
5.28 push_pop应该是push_back
臣妾通不过啊
反正就是通不过,我在vs2017上都过去了,不知道为啥
这网站要黄了吗?好几节的代码都提交不通过,还没有人维护。
请检查代码,再试试!直接进入下一节
怎么回事?
template<typename T>
void swapNum(T &a,T &b)
{
T temp = a;
a = b;
b = temp;
}
swapNum<int>(x,y);
请检查代码,再试试!直接进入下一节
怎么回事呀?连提示都没有,而且好像在这里运行不了
friend void display(Coordinate &coor);
void display(Coordinate &coor){}
// 实例化Coordinate对象
Coordinate coor(0,0);
// 调用display函数
display(coor);
为什么<<运算符的重载必须定义为友元
如果在类中定义非码友元成员函数,默认第一个参数默认会传入this*指针,这时就无法实现cout在前<<对象在后的格式
因为二元运算符中的调用格式是 参数一 运算符 参数二
这也就是为什么 加号运算符可以使用非友元成员函数,因为参数一是一个this*指针,参数二是其它对象
假设定义为非友元成员函数,那么第一个参数系统默认为this*(且无法更改),第二个参数是cout
那么调用格式就变成了 coor << cout了,这就是不能定义为非友元成员函数的原因
operator定义了多个函数重载,定义了能传入一到两个参数的operator
为什么后置要传入int?
在一元operator中,运算符要放在参数前面,也就是operator++(*this),在程序中调用一元运算符的格式:
++coor,-coor
operator(int)其实是二元函数,只是第二个参数是通过隐性的方式传入参数,传入int就相当于定义了二元运算符,也就是(this*, int),这时运算符的格式就是this*指针加运算符加int类型,再给int传入一个默认值1
例如c++1,这就满足了运算符的格式,因此在使用时变成了c++,函数会执行,而内部如何处理,就由我们随便处理
课程须知
学习本课程需要有一定的C语言和C++语言基础。如基础不太扎实的同学可以,参与C++远征攻略的学习计划,友情链接 http://www.imooc.com/course/programdetail/pid/42
老师告诉你能学到什么?
1、友元函数及友元类的定义及使用方法 2、静态数据成员和静态成员函数的定义及使用方法 3、运算符重载的技巧 4、函数模板和类模板的定义及使用方法 5、标准模板库的使用方法及基本原理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消