c/c++学习----运算符重载

今天开了重新开始用eclipse,是想写c++程序。主要是以前用惯了eclipse,大学里弄java弄了好久,发现java需要学的东西太多了,框架多,搞j2ee太烦了,所以,现在趁着还有时间,我要转到c/c++上。

以后就把所有的学习心得都发上来。


今天为了练习运算符重载,我写了一个分数的运算。

总结了一点知识:

1、熟悉了eclipse的快捷方式

自动引入包:Ctrl+Shift+O 

 Control-Alt-down arrow: 复制高亮显示的一行或多行。 

多行选中 Shift + down Alt-down arrow: 将一行或多行向下移动。

Alt-up arrow会向上移动。 

其他的热键在菜单里有。你可以通过按下Control-Shift-L看到所有快捷键的列表。

 按下Control-Shift-L两次,会显示热键对话框,你可以在这里自己设置热键。

 2、itoa函数

 

#include<cstdlib>
#include<cstdio>
int main(){
   int num = 10;
   char str[100];
   itoa(num, str, 2);
   printf("%s\n", str);
   return 0;
 }

 

itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是目标字符串,第三个参数是转移数字时所用 的基数。

在上例中,转换基数为10。10:十进制;2:二进制

于是想到了一个十进制转二进制的方法:

 

#include<cstdlib>
#include<cstdio>
int main(){
  int num = 10;
  char str[100];
  int n = atoi(itoa(num, str, 2));
  printf("%d\n",n);
  return 0;
}

先把num转换为二进制的字符串,再把该字符串转换为整数

3、因为程序中要重载<<和>>所以用到了友元函数,然后我就重温了下,下边的定义是网上搜的

友元函数  
      友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend,其格式如下:
      friend  类型 函数名(形式参数);

      友元函数的声明可以放在类的私有部分,也可以放在公有部分,它们是没有区别的,都说明是该类的一个友元函数。
      一个函数可以是多个类的友元函数,只需要在各个类中分别声明。
      友元函数的调用与一般函数的调用方式和原理一致。

友元类  
      友元类的所有成员函数都是另一个类的友元函数,都可以访问另一个类中的隐藏信息(包括私有成员和保护成员)。       
      当希望一个类可以存取另一个类的私有成员时,可以将该类声明为另一类的友元类。定义友元类的语句格式如下:
      friend class 类名;
      其中:friend和class是关键字,类名必须是程序中的一个已定义过的类。

posted @ 2010-11-12 17:57  cplayer  阅读(264)  评论(0编辑  收藏  举报