复数类_所有函数都写在类的外部
来源:互联网 发布:python多进程框架 编辑:程序博客网 时间:2024/05/16 04:37
传智扫地僧课程学习笔记。
后面的过程很复杂,
但是结论很简单,就是不要乱用友元函数,特别是与模板在一起的时候,
这里<<操作符的处理还好,不复杂,而且这个只能用友元函数实现,
但是mysub要是在内的外部实现,就好复杂,所以最好不要这样用,
#include "iostream" using namespace std; template <typename T>class complex{public:complex( T a, T b);void printcom();complex operator+(complex &c2);complex operator-(complex &c2);friend ostream& operator<<<T>( ostream &out, complex &c3);friend complex mysub( complex &c1, complex &c2){complex tmp( c1.a - c2.a, c1.b-c2.b);return tmp;}private:int a;int b;};template <typename T>complex<T>::complex( T a, T b){this->a = a;this->b = b;}template <typename T>void complex<T>::printcom(){cout<<"a:"<<a<<" b:"<<b<<endl;}template <typename T>complex<T> complex<T>::operator+(complex<T> &c2){complex tmp( a+c2.a, b+c2.b);return tmp;}template <typename T>complex<T> complex<T>::operator-(complex<T> &c2){complex tmp( a-c2.a, b-c2.b);return tmp;}template <typename T>ostream& operator<<( ostream &out, complex<T> &c3){out<<"a:"<<c3.a<<"+"<<" b:"<<c3.b<<endl;return out;}void main() { complex<int> c1( 1, 2);complex<int> c2( 3, 4);complex<int> c3 = c1 + c2;complex<int> c4 = mysub( c1, c2);cout<<c4<<endl;cout<<c3<<endl; system("pause"); }
0 0
- 复数类_所有函数都写在类的外部
- 复数类_所有函数都写在类的外部(h和cpp分开)
- 复数类_所有函数都写在类的内部
- 在复数类中自定义类型转换函数实现复数和非复数之间的运算
- 复数类的实现
- 复数类的改进
- 复数类的加减
- 复数的类
- 复数类的四则运算
- 复数类的实现
- 复数类的运算
- 复数类的实现
- jsp动作标签 (所有逻辑,显示都写在jsp时代的产物)
- 复数类的运算符重载(友元函数)
- 第八周项目1.1成员函数的复数类运算
- 用友元函数实现复数类的运算符重载
- sort函数写在类内和类外的区别
- 用类的成员函数,定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除
- 将整数转换为10进制、2进制、16进制的数字串
- SQL 第一范式、第二范式、第三范式、BCNF(鲍依斯-科得范式)--从零认识范式
- 80老翁谈人生(347):老翁因火星人失窃源代码与方正结成“死结“
- 计算字符串中的单词数
- 打印字符串、复制字符串、连接字符串
- 复数类_所有函数都写在类的外部
- 如何在maven的pom.xml中添加本地jar包
- exercise 32 列表和循环
- 解决mysql delete表数据后,表空间大小不变的问题
- Apache roller
- 12310101笔记
- 通过实体类中的某一个字段进行排序的两种方式
- 整数数组的冒泡排序(从小到大)
- 对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方