C++为什么同一个类要创建多个对象

谢谢 各位

你不需要为一个类创建一个对象也能调用类的函数,前提是函数定义为public。而你所说的为什么需要创建多个对象,是因为你需要多个对象,一个对象中的实际其实也是一对数据。也就是说你需要这些数据才去创建这个对象。而你类中实现的函数是为了操作对象中的数据的。而你需要操作与该类的数据无关时,你就没有必要将函数写在其中。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-03
这样就可以批量化啊。当然有意义了。就像一个苹果类啊,你创建了3个苹果对象,即便这三个苹果长得一模一样,三胞胎,这也是三个不同的对象,明编吗。你创建了对象,就说明了它的存在。如果因为三个苹果正好一模一样,你就只创建一个对象的话,那么其它两个就没有了。说明那样属性的苹果只有一个。
类表明了一类对象的共同属性,例如苹果,就是苹果树上长出来的那个,有皮,有肉,有籽,维生素含量百分比,口味,大体外形,基本颜色构成等等,总之是苹果共同的属性来定义了个苹果类。然后具体到对象那就不一样了是吧,有的个大,有的个小,重量,等等也可能不同。如果其它属性正好也相同了,那也是不同的对象。不同的个体。明白。追问

我现在不明白的是。。。他们不同之处在哪。。。

追答

起的名字不同啊,你定义对象的时候,肯定要用不同的名字。ap1,ap2,ap3……

第2个回答  2012-05-03
平常我们用int、char等数据类型创建对象时,总要创建多个,这是因为各个对象有其不同的用途,构造类型也一样。比如有一个Stock类,可用来炒股,你可能要买多种不同的股票,每支股票的持有数、每股价值、股票总值都可能不同,那么这就需要多个对象来存储这些属性。追问

对象的用途不就只有,调用类内的函数 才用的吗?

追答

对象被创建后,每个对象都有相同的方法和相同的内部数据类型,内部数据类型只是相同,但并不等于对应的数据也相等。
不要把构造类型的变量看的多么神奇,其实与基础类型有众多的相似之处,只是构造类型变量可以调用其特有的方法,而基础类型则没有。
既然是构造性变量,一旦定义,其属性也就决定了,至于是否调用其内在的方法,完全取决于是否必要。调用这些方法时,这个对象存在,不调用这些方法时,这个对象仍然存在。
我看见了你对copylegend 的追问,就你提供的例子再说两句。
class mode{
public:
setspeed(a){speed=a};
private:
int speed;
};
class cd{
mode s,t;// 声明两个变量
s.setspeed(5); // s的speed为5
t.setspeed(6); // t的speed为6 // 比较比较,你是如何设置变量的值的?
}

追问

我想说的是 s.setspeed(6)也能表达出t.setspeed(6)的意思吧?

追答

不对,s和t是两个不同的变量,即使二者有相同的值仍然是两个变量。

追问

那我们 在进行计算时要的不就是值吗?你值相同的话。。。就没意义了。。。,我用哪个都行。。。

追答

你迷到哪儿啦?
还拿股票说事。你买了两支股票A和B,持有量相同,每股的价值也相同,二者的总价值当然也相同啦。那么你说是A有意义,还是B有意义?还是二者都没意义呢?
你卖掉A,难道说B也不存在了吗?

第3个回答  2012-05-03
这么说吧,人类是也是一种类,
每个人都是一个人类的具体表现形式
每个人都有很多共同的属性,但是也有
每个人的特性,如果上帝只造了一个
人,那他多没意思,没有其他人跟他
有社会联系,比如不能XXOO神马的,
所以说呢,你只创建一个对象,就没
什么意思咯。追问

。。。兄弟 对象是调用类的入口,我设定多个对象只能说我开多了几道门而已,一个门就足够了,况且,按你这样说,你同时创建了多个对象,可是他们指向的类还是一样的,哪来不同点。

追答

这么理解我觉得不对咧。
再举个例子吧,
你和你兄弟,都有年龄,身高,体重这些属性,
但是你们的具体年龄,身高,体重又不同,
所以需要有类来表征你们的共同属性,
但是又要创建两个不同的对象来表示
你们具体的两兄弟,这样才能比较你们
谁大,谁高,谁重,不是?

追问

。。。。。。。。前提是 哪个地方 有不同点。。。除了名字不相同。。

追答

我之前说的话,说错了,误导你了。我之前说的派生的作用。
同一个类的对象应该拥有的属性都一样,只是具体属性内容有差异。
所以呢,拥有一个名字也是你们的共同属性,但是到具体两个对象他们的名字就不同了。
比如:
你.改名字函数 改的是你自己的名字,难道还能改到你兄弟的名字去,那不乱套了吗?

本回答被网友采纳
第4个回答  2012-05-03
创建多个对象是为了解决稍有差别的问题的!

C++用循环创建多个相同类型的对象
程序编译了以后 , 就没有img1等变量名信息了 你既然把他们存到vector里面了 , 以后就通过vector来读取嘛 同意 咯噢可 的回答

C++编程中,编写某个类的时候,为什么在头文件中要建立某些类的指针,然后...
1.指针空间小。如果有其他 继承该类的类 不需要这些成员,造成空间浪费 2.指针灵活,指向的东西,想释放 就释放,想开辟就开辟。3.成员的开辟顺序 带有可掌握性。

c++中如何让类只能实例化一个对象?
C++11引入原子操作解决了内存模型中的同步问题,确保了实例的正确初始化。饿汉式单例模式在程序启动时即完成实例化,避免了线程安全问题,但可能引起非本地静态对象的初始化顺序未定义,影响程序的正确性。为解决此问题,C++11规范了静态对象的初始化顺序,确保了单例模式的线程安全。通过理解单例模式的原理...

c++中一个程序含有多个类该如何实现
你可以自己定义多个class,不论是在单个文件中还是在多个文件中(使用include包含和using引用)都可以,只要能通过名称识别就行,包括多个类是否有继承或友元等关系完全由你自己的需要来决定 只是要注意修饰符(如private、public等)限定的权限,不要越权限访问类或对象中的成员 为了便于管理,多个类一般使用命...

C++,设计一个类,只能产生一个对象(提示:静态成员函数)
class one_t{public: static one_t& GetInstance() { static one_t ob; return ob; }private: one_t(){}; one_t(const one_t&); one_t& operator = (const one_t&);};one_t & x = one_t::GetInstance();

C++类的题目里面,主函数实参个数和成员函数形参个数不一样怎么办?
恩,是这样的,你定义一个类,如果不写构造方法的话,那么系统会默认给你添加一个隐式的构造方法。但是如果你写了一个,那么系统就认为你知道要写构造方法,所以它就不会为你添加这个隐式的构造方法。所以如果你写了其他的构造方法,那无参的构造方法也需要你自己写出来。

C++类和对象到底是什么意思?
理解C++的类和对象,需要从面向对象编程的基本概念入手。C++中的类(Class)与C语言的结构体(Struct)相似,但功能更加强大。类不仅包含变量,还能包含函数,使成员变量与处理这些变量的函数成为一个整体。如:class Student { ... }。对象(Object)是类的实例化,通过类定义的变量被称为对象。在C++...

C++中一个类最多几个构造函数?
C++中一个类可以有很多个构造函数,但是参数一定要不一样。编译器会自动提供两个构造函数:默认构造函数和复制构造函数。析构函数只能有一个。C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。其编程领域众广,常用于系统开发,...

C++可以重复创建对象吗?
a在这里是局部变量,他的生存期就是循环内。循环结束了,他也就没有了。所以下次循环还可以创建一个新的。

c++中在定义的一个类中,怎么还会加一个同名的代码?看到好几个这种情况...
你也可以不写,系统会自动添加一个默认构造和析构函数,但通常我们都会写自己的构造和析构函数。就像上面的例子,但上面的例子还不完整,因为它并没用进行实现,可以在类中直接实现,也可以在类外进行实现,这方面的信息网上很多的,这些是面向对象编程的基础。要好好看看基础东西才行啊!

相似回答