当前位置: 首页 > wzjs >正文

建设网站的模板dw做网站地图

建设网站的模板,dw做网站地图,手机屏幕网站,开发一个h5网站多少钱Hello!!!大家早上中午晚上好!!!今天我们来复习C中最重要的内容之一:类和对象!! 一、类的定义 1.1语法 类定义关键字class 类名 {//括号体类定义成员变量或成员函数}&…

Hello!!!大家早上中午晚上好!!!今天我们来复习C++中最重要的内容之一:类和对象!!

一、类的定义

1.1语法

类定义关键字class + 类名 +{//括号体类定义成员变量或成员函数}+;(分号必须要写上

例:


//类的定义
class Person
{//成员变量或成员函数
};

其中{}里的内容是称为类体,类体内定义的变量称为成员变量或类的属性,类体内定义的函数称为成员函数或类的方法;

1.2类的定义的两种方式

①声明和定义全部放在类体内

//.h文件
public:void PrintMessage(){cout << _id << "-" << _name << "-" << _class << endl;}
private:int _id;//学号char* _name;//姓名char* _class;//班级
};

②声明和定义分离

//在.h文件声明
public:void PrintMessage();
private:int _id;//学号char* _name;//姓名char* _class;//班级
};
//在.cpp文件定义
#include"student.h"
void Student::Sutdent()
{cout<<_id<<"-"<<_name<<"-"<<_class<<endl;
}

注意:在类外定义需再函数名前加上访问的作用域,建议用第二种方式定义

二、类的实例化

2.1几个概念要弄清楚

①类是对对象的描述,是一个像模型一样的东西,限定了类有哪些成员,定义了一个类并没有分配实际的内存空间来存储它;

②类的实例化是对对象的定义,是对对象的实例化;

③实例化出的对象实际上是开辟了真实的物理空间;

好比类是一样图纸,对象是按照图纸建立出来的房子;

三、类对象大小的计算

3.1类对象的大小只计算类的成员变量,不计算成员函数,成员函数不存储在对象中,存储在公共代码段;
例:
class A
{int a;void print(){cout << a << endl;}
};
class B
{void print(){}
};
class C
{};
int main()
{cout << sizeof(A) << endl;cout << sizeof(B) << endl;cout << sizeof(C) << endl;return 0;
}

空类的大小为1,当类里面只有函数没有成员变量的时候也为1字节,这1字节仅仅用来占位作用,不存储数据;

运行结果:

四、class和struct的区别

4.1在C语言中struct是创建自定义类型的关键字,在C++中struct创建的自定义类型升级成为类,也就是用sturcut定义的是一个类,用class定义的也是类,他们之间唯一的区别就是当在类体内定义成员的时候,struct默认为公有的,class默认为私有的!

例:

struct Stack
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
};
class Stack1
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
};
int main()
{//cout << sizeof(A) << endl;//cout << sizeof(B) << endl;//cout << sizeof(C) << endl;Stack s1;Stack1 s2;int a = s1.arr[2];printf("%d\n", a);int b = s2.arr[2];//报错return 0;
}

用class定义的类默认为私有的成员变量,在类外不可访问,所以对象s2是访问不了arr的

五、this指针

5.1问题:以下代码A类里面的Add函数没有关于不同对象的区分,那么a1和a2 调用Add函数的时候是怎么进行区分a1对象还是a2对象的?
class A
{
public:A(int a, int b)
{_a = a;_b = b;
}int Add(){return _a + _b;}private:int _a ;int _b ;
};
int main()
{A a1(2, 2);A a2(3, 3);cout << a1.Add() << endl;cout << a2.Add() << endl;return 0;
}

C++中为了解决这一问题引用了this指针,即每个“非静态成员函数中隐藏了一个this指针”,由该指针指向当前对象(即函数运行时调用该函数的对象),对类的成员进行一切访问都由这个this指针来访问,只不过对于用户来说是透明的,不需要传递进来,编译器自动完成!!

图解:

5.2this指针的特性

①this指针类型是类类型*const ,即不能给this赋值,不能改变this的指向;

只能在成员函数内部使用

③this指针的本质是成员函数的形参,当对象调用成员函数时把对象的地址作为实参传递给this指针,所以对象中不存储this指针;

④this指针是成员函数中第一个隐藏的指针形参,一般情况有编译器通过ecx寄存器传递,不需要用户传递

5.3this指针存放在哪里?this指针可以为空吗?

答1:存放在寄存器,编译器在生成程序是加入了获取对象首地址的代码,并把获取的代码存放在寄存器中。成员函数的其他参数正常都存放在栈中,而this指针参数则是存放在寄存器中。类的静态成员函数因为没有this指针,所以无法访问类的非静态成员变量;

答2;this可以为空,如果不需要把this指针指向当前对象才可以操作就可以为空,否则不能为空,不然就是对空指针的访问;

代码示例:

class A
{
public:void Print(){cout << "打印一个串!!" << endl;}
private:int _a;
};
class B
{
public:void Print(){cout << "打印一个类成员变量:" << _a << endl;}
private :int _a;
};
int main()
{A* p = nullptr;p->Print();//不需要this指针指向当前对象,只是打印个串B* pb = nullptr;pb->Print();//报错//要访问B里面的成员变量,就必须先要实例化出对象才能访问,且this需要明确指向当前对象!!!return 0;
}

运行异常:

好了,小伙伴们今天就复习到这里!!如果您觉得有所收获,请记得点赞收藏+关注哦!!!如果您有更好的建议,请评论区留言!!咱们下期见!!!


文章转载自:

http://v7OMrrFI.ptqbt.cn
http://4ohjNGoZ.ptqbt.cn
http://nmKIg0Td.ptqbt.cn
http://pbVElkIo.ptqbt.cn
http://NszvOrmD.ptqbt.cn
http://VrJ7mUGC.ptqbt.cn
http://TT7lU5k8.ptqbt.cn
http://tBSeGwJ3.ptqbt.cn
http://w31sfeKZ.ptqbt.cn
http://297TVxlh.ptqbt.cn
http://iCvFG4TP.ptqbt.cn
http://tuz28aV9.ptqbt.cn
http://FNvhx7Z8.ptqbt.cn
http://v5y4BN5I.ptqbt.cn
http://HJzaCuPv.ptqbt.cn
http://ZNqjy0N1.ptqbt.cn
http://6QUQ0dSA.ptqbt.cn
http://LLXIKKYR.ptqbt.cn
http://OXTqhTv6.ptqbt.cn
http://aBz9Peow.ptqbt.cn
http://b26nVfR1.ptqbt.cn
http://He92Ymct.ptqbt.cn
http://kdVYGMS5.ptqbt.cn
http://Dbv03NCy.ptqbt.cn
http://zL3wQlv4.ptqbt.cn
http://BjaiHuIX.ptqbt.cn
http://FC9GQt9b.ptqbt.cn
http://vVwGWUZE.ptqbt.cn
http://xLVAnUSR.ptqbt.cn
http://uKI7sJkv.ptqbt.cn
http://www.dtcms.com/wzjs/698166.html

相关文章:

  • 安全的营销型网站制作做网站添加mp3
  • 网站semseo先做哪个做wow宏的网站
  • 营销相关网站市场咨询公司排名
  • 成都画时网站建设动漫制作专业有本科吗
  • 网站建设如何实现检索功能上海监理建设协会网站
  • 面料 做网站wordpress不同页面广告
  • 邯郸网站制作设计wordpress 创建网站
  • 建设网站好公司哪家好wape
  • 郑州彩票网站开发宁波营销型网站建设
  • 中国联通网站备案网站后台更新文章 前台不显示
  • p2p网站建设源码如何在国外网站做翻译兼职
  • 绵阳银行网站建设专门app软件开发公司
  • 手工建站与模板网站的区别给视频做特效的网站
  • 东莞最便宜网站建设网页代码查看
  • 网站搜索查询建网站需要哪些技术
  • 京东网站开发多少钱建设集团网站方案
  • 郑州做网站的大公司wordpress 算数 验证码
  • 网站建设的需求要素一个网站有多大
  • 惠州企业自助建站人力资源公司加盟合作
  • 城乡建设部网站混凝土7天强度免费域名注册永久
  • 做水印的网站建设信用卡银行积分商城网站
  • 赣州省住房和城乡建设厅网站大气网站首页模板
  • 做网站一定要域名吗网页设计素材模版
  • 如何免费注册自己的网站找外贸工作哪个网站好
  • 资源seo网站优化排名嘉兴网站建设科技有限公司
  • 上海龙华医院的网站建设公司网页设计文案
  • 汝州住房和城乡建设局网站网站发稿平台
  • 阿里云网站电子商务平台的功能有哪些
  • linux视频播放网站南通网站建设规划
  • 旅行社网站建设策划书网站流量统计分析工具