| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1370 人关注过本帖
标题:请大家指点有关(类)的问提!!!谢谢
只看楼主 加入收藏
spider
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-6-7
收藏
 问题点数:0 回复次数:7 
请大家指点有关(类)的问提!!!谢谢
请大家指点有关(类)的问提!!!谢谢 谁有空指点一下! 请解释一下:类,对象,公有,私有。 小弟这里看了好几遍都没弄明白请指点一下或介绍一篇好文章。 谢谢~~!!!
2004-06-07 13:50
Serion
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-6-6
收藏
得分:0 
re

类其实像一个月饼帽,而对象(又称"实例")就是月饼,用一个月饼帽可以印出很多个一样的月饼,就好象类可以实例化很多一样的对象.看下面一个例子:

class Cat { public: int age; string name; }; 上面设计了一个Cat类,这个Cat类里面有两个共有属性,age和name,分别表示猫的年龄和名字。然后我们就可以用上面的Cat类制造出很多Cat对象了:

void main() { Cat myCat1; Cat myCat2; Cat myCat3; }

上面在main函数里,根据前面所创建的Cat类,实例化了3个Cat对象,它们分别是myCat1,myCat2和myCat3.好,现在有了3只猫了,我们可以让他做一些事情了,比如跟它们起名字:myCat1.name="Hello Kity";等等.....

要是还不明白的话就看这句比喻:在科幻电影里,经常会听到"克隆人",就是制造出很多一模一样的人,那制造他们的时候都是根据一个严格的模版制造出来的,这个模版规定了制造出来的人的各种属性,如身高,性别,肤色等。那么这个模版就是面向对象里面的类!~~

2004-06-07 19:49
spider
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-6-7
收藏
得分:0 

嗯!谢谢你!类和对象我明白了。

可是我对公有,私有这两个词还是弄不懂。我的书上一标提为:“使成员数据私有”请问一下,为什么把数据变为私有,不是只有在公有的情况下在任何地方才可以访问该数据吗。

2004-06-07 21:06
Serion
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-6-6
收藏
得分:0 
re

呵呵~~其实很简单,每样事物总有你看到的和看不到的东西吧~~~

同样,你可以把一个对象里的所有成员都公开~~,而这就意味着对象里的所有成员都能被外界直接访问和修改,难道你不觉得这样很不安全吗?看下面一个例子,一个"班"类:

class Class { public: string StudentName[50]; //班里各学生的名字集合,班里最多只能有50位同学 int StudentCount; //班里学生的总数 void Add_Student(string name) //添加学生的方法 { StudentCount++;   StudentName[StudentCount-1]=name; } }; 注意:忽略构造函数

在上面的例子里,Class类的所有成员都是公开的,这就意味着可以通过对StudentCount直接修改来改变班里学生的总数,可是这里有一个成员:StudentName[],它是用来储存班里各学生的名字的.要是只把StudentCount加1,可是没有在StudentName里也左相应修改的话,两个数据成员就出现了不协调了~~例如: void main() { Class myClass; myClass.Add("Tom"); myClass.StudentCount++; } 现在你能够说出班里真的多了一位同学吗?虽然班的学生总数多了一个,可是同学名称集里只有 Tom一个人,多出的那一个...........鬼?呵呵,把特定的数据成员隐藏(私有化)掉能够避免出现这类情况:

class Class { public: void Add_Student(string name) //添加学生的方法 { StudentCount++;   StudentName[StudentCount-1]=name; } private: string StudentName[50]; //班里各学生的名字集合,班里最多只能有50位同学 int StudentCount; //班里学生的总数 }; 现在,外界就只能使用Add_Student()方法修改班里的学生总数了~~~~

2004-06-07 22:51
spider
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-6-7
收藏
得分:0 

上面的问提我弄明白了!谢谢大家!不过现在又有问提了。我对类和对象学的太差可是看书又看不明白所以还要请大家看一下!

class cat

{

public:

unsigned int GetAge();

void SetAge(unsigned int Age);

unsigned int GetWeight();

void SetWeight(unsigned int Weight);

void Meow();

private:

unsigned int itsAge;

unsigned int itsWeight;

};

分析:这个类有5个公有方法。第8、9行中包含有istAge的访问方法。第11 12行含有itsWeight的访问方法。这些访问函数设置成员变量并返回它们的值。//请问一下这里为什么返回它们的值???

第15行声明了公有成员函数Meow()。Meow不是 一个访问函数。//请问这里的Meow为什么不是一个访问函数???

它不能获取或设置成员变量的值;它执该类的另一项职能--打印单词“Meow”。第19 20行声明了成员变量本身。

2004-06-07 23:11
ant3000
Rank: 1
等 级:新手上路
帖 子:188
专家分:0
注 册:2004-6-7
收藏
得分:0 

这里两个成员变量是私有的外界无法访问 只有用

一个成员函数把他们的值返回(unsigned int GetWeight();)

和一个成员函数设置他们的值 (void SetWeight(unsigned int Weight);) 其他的同理

因为这个Meow()函数 只看名字就知道是一个动作的函数 (猫叫) 所以不是访问函数

[此贴子已经被作者于2004-06-08 09:48:57编辑过]

2004-06-08 09:45
spider
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-6-7
收藏
得分:0 

ok

谢谢我明白了!

2004-06-08 10:07
金多虾
Rank: 2
等 级:论坛游民
帖 子:153
专家分:99
注 册:2009-6-9
收藏
得分:0 
看书啊,基础知识很重要啊!
2009-08-04 21:56
快速回复:请大家指点有关(类)的问提!!!谢谢
数据加载中...
 
   



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

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