dxxds
【教】给你的故事小游戏,C++兴趣入门(完结)

本帖最后由 dxxds 于 2013-11-23 12:06 编辑

找工作的时候,渐渐发现,很多人对C++非常恐惧,觉得很难啊什么的。

想当年在学校,一个指针,吓跑多少妹子和基佬。

所以,本人想换个方式,给大家入门。

语言嘛,就是拿来叙述事儿的:

我去买了俩鸡蛋。

冬天再大的风也掀不起妹子们那厚重的裙子了……

……

是吧,这就是语言啊。

程序语言呢,就是咱给机器讲故事了,然后某工具翻译给机器,机器看懂后,听你的话。

首先,机器绝对会听你的话,其次,翻译工具很好找,最后,就剩下我教你怎么讲故事了。

不知道现在看帖子的人,有没有自己的翻译工具(编译器)。

有的人,就用自己顺手的(推荐VC6以上,不包含VC6)

没有的人,就去下载一个小编译器吧,入门用的,不用很复杂,DEVCPP,FREE C++这样的就够了。

C FREE 5 比DEVC++ 好用不少,附一個下載鏈接

http://pan.baidu.com/share/link?shareid=336810&uk=1292274826

C FREE 5 在此下載

我在这里用DEVCPP给大家示范

打开编辑器,选文件,选源代码。

这样就开了一个未命名文件。记事本,WORD操作该会的,这里一样,后面就不多说了。

先来一段代码

#include *本站禁止HTML标签噢*

using namespace std;

int main()

{

cout<<"故事开始"<<endl;

cout<<"故事结束";

return 0;

}

这是很基础的一段。大家的英文底子不能太差啊,单词的意思一定要知道才行。

这次先给大家翻译解释,以后不翻译了。

include :包含,就是把要使用的功能所在的文件加到你的代码里。

iostream :IO 是 in/out ,stream流,目前用到的 in就是让你在电脑讲故事时对你的询问有一个回答,回答就给in到电脑里了,out就是让你故事里的事物输出到显示器上。 当然iostream功能不止这点儿,你们先记这么多、

int:integer的缩写,整数,占用电脑四个字节,一可以储存一段数字。一个字节范围0-255,int的最大表示范围就是255*255*255*255.

main:很关键的,主函数,所有故事都是从这里开始讲。

cout :读作 C OUT,向显示器输出一段话,<<就是碗里的东西向外倒。

endl :就是 end line 结束一行,然后自行回车换行了。

return:把函数结果交出去。

编写代码的时候,要记着在每一个语句后加分号";",表示句子结束,这也是现今绝大多数语言的规矩。

目前的解释就是这样了,以后所有的代码,都是基于这个往后编的。

可以试着让电脑执行这段代码了,按F9编译运行(C-FREE 用 F5),我们把文件起个名字存起来,就叫stroy_1.cpp吧。

可以看到,命令行窗口出现了,就又立刻消失了。于是大家纷纷表示,我看不到啊。

电脑太听话了啊,干完活就知道立刻退下,好孩子~~

咱们现在让它干完活先留在这,等你吭一声再走。

那就在 return 0 前面加一句 system("pause>nul ")

像这样。

int main()

{

cout<<"故事开始"<<endl;

cout<<"故事结束";

system("pause>nul");

return 0;

}

pause:很好理解,暂停了的意思,这是一段DOS命令,可以让程序停下来。

system:负责执行这个命令,以后有啥别的命令也可以在这里打

现在这样,我们就看到它把故事讲出来了,哦~ 是样的。

然后,随意按一个键盘按键,就退出了。

好,先将这些,下节讲更多内容。

骷骷马力梦魇
能详细解释下这个不
展开Biu

char *who_is_the_most_handsome_man()

{

return "dxxds!dxxds! I LOVE YOU !!!";

}

int main()

{

who_is_the_most_handsome_man();

return 0;

}

能详细解释下这个不

[查看全文]
紫色的雨
loveless66
滚来滚去
展开Biu

滚来滚去……~(~o ̄▽ ̄)~o 。。。滚来滚去……o~(_△_o~) ~。。。

好像挺有趣的样子,先马克……回来学习学习~~

[查看全文]
dxxds
虽然对于我来说讲的太简单了
展开Biu

Eeyore 发表于 2013-4-20 10:08

虽然对于我来说讲的太简单了,不过还是顶一个~~~关注后续哦~~

还请务必多关注

[查看全文]
Eeyore
虽然对于我来说讲的太简单了
展开Biu

虽然对于我来说讲的太简单了,不过还是顶一个~~~关注后续哦~~

[查看全文]
dxxds
本帖最后由
展开Biu

本帖最后由 dxxds 于 2013-4-20 10:07 编辑

给你的故事,C++的兴趣入门 12

感觉之前的都写的太长了,会有很多人看不下去,所以这次我写短,希望能有人继续关注

上一节课已经写了职业的具体分工实现,那有了职业,咱就要给各个职业加上不同的技能,不然你可不会玩它

class role //角色

{

public:

int LV; //等级

int HP; //血值

int AT; //攻击力

void show_state();

virtual ~role(){ cout<<"删除了role资源"<<endl;}; //虚函数,为了能执行子类析构函数,顺利删除资源而写。这句会被子类析构函数覆盖,实际上不会执行

virtual void skill()=0; //虚函数,为了能调用子类的同名函数

};

void role::show_state()

{

cout<<"等级:"<<LV<<"血量:"<<HP<<"攻击力:"<<AT<<endl<<endl;

}

class warrior : public role //战士,继承了角色类

{

public:

warrior()

{

LV=1; HP=100; AT=10; cout<<"初始化了战士属性"<<endl;

}

~warrior()

{

cout<<"删除了战士资源"<<endl<<endl;

}

void skill()

{

cout<<"战士技:劈砍!"<<endl;

}

};

class magician : public role //法师,继承了角色类

{

public:

magician()

{

LV=1; HP=50; AT=20; cout<<"初始化了法师属性"<<endl;

}

~magician()

{

cout<<"删除了法师资源"<<endl<<endl;

}

void skill()

{

cout<<"法师技:冰箭!"<<endl;

}

};

int main()

{

role* player = new warrior; //role变成了战士

player->skill(); //自然这里就是战士的技能

delete player; //删了它,接下来让它变成法师

player = new magician; //变成了法师

player->skill(); //自然这里就是法师的技能

delete player; //删了它 准备结束程序

system(pause>nul);

return 0;

}

可以看到我相对上一节课,只是在role类里多增加了一个skill的函数和一个~role的析构函数,并在之前加了一个virtual,表示这个函数是虚的。

这个虚函数类似一个JAVA里的interface,也就是接口。意思是让所有继承role的类,都必须实现这个函数,不然就报错

至于为什么要写这个函数?

因为role自己不知道将来在main里会变成战士还是法师,所以这里空下,交给子类实现。

但是这个函数必须要有,因为role不能调用子类有的而父类(也就是role自己)没有的函数方法

虚函数有两种,一种是可以自己(父类)实现的,还有一种是自己(父类)不能实现的

能实现的那种,前面加上“virtual”,然后直接写就行了。

不能实现的,前面加上“virtual”,后面加上 “=0”,就行了。

虚函数和一般函数的区别是啥?

区别就是,看下面这句

role* player = new warrior;

这句代码里有两个类,一个是role,一个是warrior

那如果这两个类里都有一个同名函数,那player执行哪个?

答案就是

如果函数是虚函数,就执行player子类的(warrior)

如果它不是虚函数,就执行player自己的(role)

OK 没啥难的吧?那就到这啦。

[查看全文]
雨雪霏霏
终于有救了
展开Biu

终于有救了QAQ#42t

[查看全文]
tamashii
的编译器推荐使用
展开Biu

C++的编译器推荐使用GCC的升级版——GPP。至于Windows平台可以使用MingW

[查看全文]