C++ 初学者指南 第六篇(8)

转载请标明出处:http://blog.csdn.net/zhangxingping

项目6-1 重载输出函数
    在下面的项目中,我们将创建一组重载的函数,用于把不同类型的数据输出到显示器上。尽管使用cout是相当便捷的,但是下面的程序提供了另外一种输出方式。这种输出方式或许对一些程序员来时是很有吸引力的。实际上,Java和C#中使用的都是输出函数,而不是输出运算符。重载输出函数后,我们既可以使用输出函数也可以使用输出运算符,那种方便我们就可以使用哪种方式。另外,我们还可以对输出函数进行裁剪,以满足自己特殊的需要。例如,我们可以输出布尔类型变量的值为“true”或者“false”,而不是1或者0。
    我们将创建两套函数:println()和print()。println()函数把参数的值输出,并输出一个换行。print()函数输出参数的值,但是不输出换行。如下:
print(1);
println(‘X’);
print(“Function overloading is powerful.”);
print(18.22);
将产生如下的输出:
1X
Function overloading is powerful.18.22
    我们在程序中会针对bool,char,int,long,char *,double类型来对print()和println()函数进行重载。当然,自己也可以增加针对别的类型的重载。

步骤:
1. 创建一个文件,命名为Print.cpp
2. 以下面的代码开始:
 

 /* 
     项目-1
     重载函数println()和print(),用于显示各种类型的数据
 */
 
 #include <iostream>
 using namespace std;


3. 如下,增加函数print()和println()的原型:
 
//下面的这些函数将输出一个换行
 void println(bool b);
 void println(int i);
 void println(long i);
 void println(char ch);
 void println(char * str);
 void println(double d);
 
 //下面的这些函数将不会输出换行
 void print(bool b);
 void print(int i);
 void print(long i);
 void print(char ch);
 void print(char * str);
 void print(double d);


4. 如下,实现println()函数
 
//下面是println()函数的实现
 void println(bool b)
 {
     if(b) cout <<"true\n";
     else cout << "false\n";
 }
 void println(int i)
 {
     cout << i << "\n";
 }
 void println(long i)
 {
     cout << i << "\n";
 }
 void println(char ch)
 {
     cout << ch << "\n";
 }
 void println(char * str)
 {
     cout << str << "\n";
 }
 void println(double d)
 {
     cout << d << "\n";
 }

 注意上面的实现在每次输出之后增加了输出换行。同时,println(bool)函数输出的是“true”或者“false”。可见,我们可以很方便地自行定义输出格式以便满足自己的需要。
5. print()函数的实现如下:
 
//下面是print()函数的实现
 void print(bool b)
 {
     if(b) cout <<"true";
     else cout << "false";
 }
 void print(int i)
 {
     cout << i ;
 }
 void print(long i)
 {
     cout << i;
 }
 void print(char ch)
 {
     cout << ch;
 }
 void print(char * str)
 {
     cout << str;
 }
 void print(double d)
 {
     cout << d;
 }

 这些函数除了不输出换行外,其它的都和println()函数一样。因此,连续的输出将会是在同一行。
6. 完整的程序如下:
 
/* 
     项目-1
     重载函数println()和print(),用于显示各种类型的数据
 */
 
 #include <iostream>
 using namespace std;
 
 //下面的这些函数将输出一个换行
 void println(bool b);
 void println(int i);
 void println(long i);
 void println(char ch);
 void println(char * str);
 void println(double d);
 
 //下面的这些函数将不会输出换行
 void print(bool b);
 void print(int i);
 void print(long i);
 void print(char ch);
 void print(char * str);
 void print(double d);
 
 int main()
 {
     println(true);
     println(10);
     println("This is a test");
     println('x');
     println(99L);
     println(123.23);
 
     print("Here are some values: ");
     print(false);
     print(' ' );
     print(100000L);
     print(' ');
     print(100.01);
 
     println("Done!");
     
     return 0;
 
 }
 
 
 
 //下面是println()函数的实现
 void println(bool b)
 {
     if(b) cout <<"true\n";
     else cout << "false\n";
 }
 void println(int i)
 {
     cout << i << "\n";
 }
 void println(long i)
 {
     cout << i << "\n";
 }
 void println(char ch)
 {
     cout << ch << "\n";
 }
 void println(char * str)
 {
     cout << str << "\n";
 }
 void println(double d)
 {
     cout << d << "\n";
 }
 
 //下面是print()函数的实现
 void print(bool b)
 {
     if(b) cout <<"true";
     else cout << "false";
 }
 void print(int i)
 {
     cout << i ;
 }
 void print(long i)
 {
     cout << i;
 }
 void print(char ch)
 {
     cout << ch;
 }
 void print(char * str)
 {
     cout << str;
 }
 void print(double d)
 {
     cout << d;
 }


 程序的输出如下:
 true
 10
 This is a test
 x
 99
 123.23
 Here are some values: false 100000 100.01Done!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值