| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1448 人关注过本帖
标题:请教c++中的类知识
只看楼主 加入收藏
离大神差几步
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2019-4-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
请教c++中的类知识
书上讲类看成一个对象,后面略,废话少说,我想说谁讲一下类的作用与使用它,简单通俗点。书上把类讲得复杂了,比c语言数组,指针,链表复杂化,反正我有些懵逼。希望,大神们讲这方面的知识,并且简单化。
搜索更多相关主题的帖子: c++ 知识 c语言 指针 链表 
2019-04-29 10:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:15 
類是class,對象是object,不是一回事。

類是一種抽象概念,對象是對應該類的一個實體。擧個例子,“人”是一個類,你通過“人”的概念知道它具備什麽特性和行爲,但世界上沒有抽象的人,只有具體的個人,這種個人就是人類的不同對象。中國古代哲學說“白馬非馬”就是這樣的概念,馬是抽象的類概念,世界上沒有馬,只有各種不同的馬,白馬、黑馬、公馬、母馬等等是派生類,其實也不是實體,只有具體到一匹真正的馬,才是對象,所以才說白馬非馬,派生類固然不等於父類,對象也不是類。

每個類是模板,都可以按照模板生成不定數目的對象,每個對象都有自己的獨特不同之處,但都有同一個類的共性。

定義類只是工程師繪製的設計藍圖,此時還沒有真正的製造對象,光定義類是沒有製造過程的,程序語句中使用諸如new這樣的語法就是生產對象的動作。

程序上的例子:

定義一個坐標類
class point
{
    double x;
    double y;
}
這是一個二維坐標概念,表明有一對實數,具體對象是諸如(1,2)、(0,-1)這樣的對象,這些對象都可以通過new語句構造在内存中成爲真實的數據引用。類不但可以定義數據,還可以定義行爲,對二維坐標這樣的概念,你可以為它定義矢量運算,比如加法是分別要x相加和y相加的,把這樣與概念本身關聯的數據和行爲算法都定義在類代碼中,就與別的概念不同,你在寫程序代碼時,這些都是看作現實中真正概念的。

面向對象程序員的責任,是設計和實現這樣讓使用程序員使用的工具庫,亦即你有兩種用戶,一種是消費者客戶,另一種是程序員客戶,後者使用你設計的類和工具庫。很多用C++的程序員,其實自己不做面向對象程序設計,而只是拿面向對象語言現成的庫和別人提供的現成工具,實際上寫出來是面向過程的程序代碼,那些從C入門向C++轉化的程序員,絕大多數都會被C的思維局限住很難向對象思維轉型成功。看代碼是可以看出來一個人的思維是C還是C++的,甚至工作過程都可以看得出來,只要他一起手是想如何實現功能而不是想如何定義類和對象的,就是C程序員出身,他最後的產品,一定是傾向於面向過程的,用再多的C++語法和現成庫,都不能改變這個事實。面向對象的程序員,其工作成果,不單是給最終消費客戶使用,更主要的是給別的程序員使用,也是為自己將來維護和擴展產品方便而留給自己使用,他的思維不是爲了交貨、趕時間、為工資工作,他要為整個行業和自己的將來工作,那些怕客戶更改需求和調整、維護程序的,一定是自己寫的代碼本身就難於維護和變更,而面向對象的程序設計思維,本來就是爲了解決這類問題的,他們既然怕這個,就是自己做的時候根本就沒有按照面向對象設計的原理做。“代碼是給人看的,不是給機器看的。”

授人以渔,不授人以鱼。
2019-04-29 14:54
lwy2xxj
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:36
专家分:148
注 册:2019-4-8
收藏
得分:5 
对象是开始用类了,给它实例化
class abc
abc()

[此贴子已经被作者于2019-4-29 15:27编辑过]

2019-04-29 15:24
快速回复:请教c++中的类知识
数据加载中...
 
   



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

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