c++类对象和对象的区别

c++类对象和对象的区别... c++类对象和对象的区别 展开
 我来答
浪迹天涯的流星
2016-05-31 · 知道合伙人教育行家
浪迹天涯的流星
知道合伙人教育行家
采纳数:8922 获赞数:81537
对于基本办公软件比较擅长。

向TA提问 私信TA
展开全部
1.1、类和对象基本概念
(1)类和对象是面向对象程序设计中最基础,最重要的两个概念。
(2)在面向对象程序设计中,所有操作都是以对象为基础的。
(3)程序中的对象 是对 现实对象的抽象。

1.2、什么是对象
现实对象包括可感知的物体,以及思维中的概念;
例如:
汽车客运被看做是一个对象;学校作为一个概念也可以看成一个对象;

现实对象
有个特点:属性 和 行为的整体
示例:一辆汽车具有车型、颜色 -》属性
并有启动,转向、刹车等-》行为
程序对象:
属性可以看做为数据;行为可以抽象为函数。

对象是:数据 和 函数 的集合。
对象是:一个完整的个体。
例如:
所有汽车都具有车型,颜色等属性,所有属性的个数相同,所有汽车都具有启动、转向、刹车等行为。

1.3、什么是类?
类:
类是指整个一类实物,一个类定义了一个模板;
类对 数据 以及 处理数据的方式(函数)进行封装;

汽车类:包括(汽车对象1、汽车对象2、汽车对象3)
类 -具体实例-》对象
类《-抽象----对象

类(class):
是将一组对象的 数据结构 和 操作相同的部分 抽出来 组成的集合,是 对象 的 共同特征 。
DoramiHe
2016-05-01 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59543
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
#include <iostream>
#include <string>
using namespace std;

class Student
{
public:
static int number;
string name;

public:
Student()
{
}

void set(string str)
{
name = str;
number++; // 调用静态数据成员
}

void print() // 态成员函数 print()
{
std::cout < < name < <" : The number of the students is " < < number < < " numbers." < < std::endl; // 调用静态数据成员
}
};

int Student::number = 0; // 静态数据成员初始化

int main(int argc, char** argv)
{

Student* s1;
s1 = new Student();
s1->set("111");

Student s2;
s2.set("222");

s1->print();
s2.print();

return 0;
}

对于类student ,定义了一个对象 和一个指针。
类的指针:他是一个内存地址值,他指向内存中存放的类对象(包括一些成员变量所赋的值).
对象,他是利用类的构造函数在内存中分配一块内存(包括一些成员变量所赋的值).
在应用时:
1.引用成员: 对象用" . "操作符; 指针用" -> "操作符.
2.生命期: 若是成员变量,则是类的析构函数来释放空间;若是函数中的临时变量,则作用域是该函数体内.而指针,则需利用delete 在相应的地方释放分配的内存块.
注意:用new ,一定要delete..
类的对象:用的是内存栈,是个局部的临时变量.
类的指针:用的是内存堆,是个永久变量,除非你释放它.

当类是有虚函数的基类,Func是它的一个虚函数,则调用Func时:
类的对象:调用的是它自己的Func;
类的指针:调用的是分配给它空间时那种类的Func;
对于一个类的对象和这个类的指针(用new运算符分配内存)在应用时有何区别
1.类和对象是两回事,对象是类的实例;
2.对象是在栈中分配的,使用new生成的对象是在堆中分配的;
3.要发挥虚函数的强大作用,必须使用指针来访问对象.
指针可以实现多态,直接用对象不行
执行定义对象,在栈空间
new处的在堆
注意名字的类型.
一个是Student
一个是Student*
Student是直接访问一个对象
Student*是间接访问一个对象,因为通过了一个指针作媒介.
类型决定了你能做什么.
其实作用基本一样 都是为了调用类的成员变量 和成员函数用的
当你希望明确使用这个类的时候,最好使用对象,如果你希望使用C++中的动态绑定,则最好使用指针或者引用
指针和引用用起来更灵活,容易实现多态等

类的指针:他是一个内存地址值,他指向内存中存放的类对象(包括一些成员变量所赋的值).
对象,他是利用类的构造函数在内存中分配一块内存(包括一些成员变量所赋的值).
在应用时:
1.引用成员: 对象用" . "操作符; 指针用" -> "操作符.
2.生命期: 若是成员变量,则是类的析构函数来释放空间;若是函数中的临时变量,则作用域是该函数体内.而指针,则需利用delete 在相应的地方释放分配的内存块.
注意:用new 一定要delete..
当类是有虚函数的基类,f是它的一个虚函数,则调用f时:
类的对象:调用的是它自己的f;
类的指针:调用的是分配给它空间时那种类的f;
1.在类的声明尚未完成的情况下,可以声明指向该类的指针,但是不可声明该类的对象...
2.父类的指针可以指向子类的对象..
定义对象实例时,分配了内存。指针变量则未分配类对象所需内存
指针变量是间接访问,但可实现多态(通过父类指针可调用子类对象),并且没有调用构造函数。
直接声明可直接访问,但不能实现多态,声明即调用了构造函数(已分配了内存)。
至于那个效率高要看程序调用过程而定。
C++的精髓之一就是多态性,只有指针或者引用可以达到多态。对象不行
用指针:
第一实现多态。
第二,在函数调用,传指针参数。不管你的对象或结构参数多么庞大,你用指针,传过去的就是4个字节。如果用对象,参数传递占用的资源就太大了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
野人无事不言L
2016-04-17 · TA获得超过1414万个赞
知道顶级答主
回答量:2242万
采纳率:0%
帮助的人:145.8亿
展开全部
C语言的变量可以分成两种级别:全局变量和局部变量 全局变量,在该变量之后定义的函数都可以访问 局部变量,只能在定义的函数中访问 而C++中多出了成员变量,成员变量通常是私有。 成员变量依附于对象存在,有了对象,成员变量才有内存 而成员变量的可以被本类的所有成员函数直接访问的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式