| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1072 人关注过本帖
标题:[讨论]本人准备用另一种方式去改写,请大家给些意见
取消只看楼主 加入收藏
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
结帖率:78.95%
收藏
 问题点数:0 回复次数:3 
[讨论]本人准备用另一种方式去改写,请大家给些意见

自己在学习的过程中C++,VB等语言时不断的找教程,林林总总表现方式的教程都看过了.也很感谢那些有心之人写下好那么好的教程好那些收集整理教程的人们.本人也想为编程的爱好者做些事情.用另一种表现方式去表现别人已经写好的教程(当然会有小改动)
今天本人在学习的过程中,在程序代码里写注释时想到.为什么我们不把教程写到程序里面呢.把它给注释掉,就像下面这样的表现方式.然后我们给学习者源码就行了.学习都打开源码就可以直接运行程序.

我改写的这个教程是来自<<C++程序设计语言>>即<<The C++ Programming Language>>
Bjarne Stroustrup
(美)------------------著
贝 尔 实 验 室

#include <iostream>
#include <string>
#include <stdlib>
using namespace std;
//10.2.2 访问控制
//在前一节里的Date声明提供了一组操作Date的函数,然而,它却没有清楚地说明这些函数就是直接依赖于
//Date的表示的全部函数,而且也是仅有的直接访问Date类的对象的函数.这引起限制可以通过用class
// 代替struct而描述清楚:

class Date{
int d,m,y;
public:
void init(int dd,int mm,int yy){ //初始化
cout<<"初始化日期为:"
<<dd<<"日"<<mm<<"月"<<yy<<"年"<<endl;
};
void add_year(int n){cout<<"加"<<n<<"年"<<endl;}; //加n年
void add_month(int n){cout<<"加"<<n<<"月"<<endl;}; //加n月
void add_day(int n){cout<<"加"<<n<<"日"<<endl;}; //加n天
void del_day(int n); //删除一天
};

//标号public将这个类的体分为两个部分,其中的每一部分(私用部分)只能由成员函数使用;而第二部分
//(公用部分)则构成了该类的对象的公用界面.一个struct也是一个class,但是其成员的默认方式是公用
//成员函数的定义和使用与以前完全一样.例如:

inline void Date::del_day(int n){
cout<<"删除"<<n<<"日"<<endl;
}

//然而,非成员函数将禁止访问私用成员,例如,
//void timewarp(Date& d){
// d.y-=200; //错误:Date::y为私用成员
// }
//将对数据结构的访问严格限制到明确说明的一组函数,这样做有许多优点.例如,导致Date保存某个非法值
//(例如,1985年12月36日)的任何错误必然是由某个成员函数的代码造成的.这就意味着第一个层次的排错
//--局部化--在程序运行之前就已经完成了.这也是一种一般认识的特殊情况,该认识是:类型Date行为的任何
//改变都能够且必须是受到其成员函数改变的影响.特别是,如果一个类的表示方式改变了,我们只要修改成员
//函数,就可以去使用这个种新表示.用户代码只直接依赖于公用界面,因此就不需要重新写(虽然可能需要重新
//编译).另一个优点是,一个潜在的用户要学习使用一个类,也只需要考察其成员函数的定义.
// 对私用成员的保护依靠的是对于使用类成员名字的限制.可以通过地址操作和显式的类型转换绕过这些
//限制.不过,这些方式当然是作敝行为.C++的保护只是为了避免无意的失误,而不是为了防止精心策划的计谋
//(骗局).只有硬件才可能防止对通用语言的来意使用.当然,即使是利用了硬件,想在现实的系统里把这件事情
//做好也非常困难.
// 这里加入进一个init()函数,部分原因是,有一个函数来设置对象的值一般总是有用的;还有就是数据的私
//用性也迫使我们去提供它.
int main(int argc, char* argv[])
{
Date meDate;
meDate.init(20,05,1999);
meDate.add_year(1);
meDate.add_month(1);
meDate.add_day(1);
meDate.del_day(3);

system("pause");
return 0;
}
//---------------------------------------------------------------------------

搜索更多相关主题的帖子: 意见 
2007-05-12 23:57
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
噢...我做的不是书...而是源码..在源码中带有注释(书的内容).
最终发布的形式是以源码的形式发布的.

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-05-13 00:23
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
我的想法是这样的...在电脑里打开一个教程.或手里拿着一本教程的书...电脑里又打开着C++环境.
这样就好像多做了些事情...我希望的是这个教程在C++ 环境里打开..然后可以直接运行,可以让读
者看到运行的结果.这个想法我就是在读<<The C++ Programming Language>>所想到的.因为里面的
例子不能独立运行,就是直接抄下去运行不了.所以我就想到要改写.我也只是一边学习一边改写的,
还没有写书的能力,希望各位不要见笑!
不过待我些版的教程出来可能要很久哦..呵呵...

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-05-13 14:17
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
谢谢各位的顶力支持

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-05-13 20:09
快速回复:[讨论]本人准备用另一种方式去改写,请大家给些意见
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018966 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved