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

做设计网站的工作网站开发的工作职责

做设计网站的工作,网站开发的工作职责,上海做网站的月薪,视频类html网站模板目录 类的定义格式: 内敛函数: 类与struct的区别: 类的访问权限: 类域: 类的实例化: 对象大小: 计算对象的大小时,也存在内存对齐(与结构体一样)&…

目录

类的定义格式:

内敛函数:

类与struct的区别:

类的访问权限:

类域:

类的实例化:

对象大小:

计算对象的大小时,也存在内存对齐(与结构体一样):

this 指针:


类的本质是封装 ,相比c语言,c语言的数据和方法都是分离的,c++把数据和方法都放到了类里面

类的定义格式:

class Stack//定义一个栈 
{
private:void Init(int capacity=4){_array=(int*)malloc(sizeof(int)*capacity);assert(_array);_capacity=capacity;_top=0;}
public:  int*_array;size_t _capacity;size_t _top;
} 

内敛函数:

class为定义类的关键字,Stack为类的名字,{}中为类的主体

类中的内容:类的成员

类中变量:成员变量,一般为了却分成员变量,会在变量名前加一个特殊标识符

类中可以定义函数,称为成员函数

定义在类里面的成员函数默认为内敛函数

类与struct的区别:

  1. 类中内容称为类的成员,类中的变量称为类的成员变量或者类的属性

  2. 类中可以定义函数,类中的函数称为类的方法或者类的成员函数

  3. 用栈来举例,结构体中放的只是我们需要的数据,方法是单独写的,但是在类中我们把这些都放在了class的主体中了

  4. 类可以直接使用类名,不需要使用typedef来重命名。(类名就是类型)

类的访问权限:

public,后面的内容为共有

private/protected,后面内容为私有

class Stack
{piblic:void Init(int  n=4)//给栈初始化{....}void push(int x)//入栈{...}private:int *array;size_t capacity;size_t top; 
}

一般成员函数是公有的,成员变量是私有的。

访问权限的范围,比如上面public,从“:”开始,一直到private ,也就是从自身到下一个访问限定符,如果只有一个访问限定符,那么就是直接到“}”结束。

在class中,如果没给出访问限定符,那么默认是私有

在类中,不管是私有还是公有,都是能访问的

在c++中,struct也可用来定义类,当struct中没有给出访问限定符时,默认是公有

c++struct的用法兼容c

类域:

域的作用是影响编译器的查找,做到名字的隔离

会影响到编译器的查找,如果不指定类域,编译器在编译时将不会访问类域

类的实例化:

类是没有被分配空间的,只有类实例化出的对象才会被分配空间

类就像一个房子的设计图,告诉了我们房子的样式,但不能住人,换类来说就是不能存数据,只有类实例化出的对象才能存数据

一个类可以实例化多个对象

class Data
{private://这是声明int _year;int _month;int _day;
};int main()
{//这是类定义一个对象,也叫类实例化出对象Data d1;Data d2;
}
//类与对象的关系:1对多,一个类可以实例化出多个对象。

对象大小:

类实例化出的对象也是有大小的。

类实例化出的对象只会在对象中存储类中的成员变量,不会存储成员函数。因为存储成员函数是没必要的,我们每次调用的成员函数都是同一个,他们唯一的区别就是在调用函数时传入的数据不同。如果我们非要在对象中存储成员函数,那么存储的是成员函数的指针,我们每实例化一个对象,就得存储一次指针,存储100个,就得存储100个指针,但是这些个空间是完全没必要的,是一种空间的浪费。

计算对象的大小时,也存在内存对齐(与结构体一样):

  1. 第⼀个成员在与结构体偏移量为0的地址处。

  2. 其他成员变量要对⻬到某个数字(对⻬数)的整数倍的地址处。

  3. 注意:对⻬数 = 编译器默认的⼀个对⻬数 与 该成员⼤⼩的较⼩值。

  4. VS中默认的对⻬数为8

  5. 结构体总大小为:最⼤对⻬数(所有变量类型最⼤者与默认对⻬参数取最⼩)的整数倍。

  6. 如果嵌套了结构体的情况,嵌套的结构体对⻬到⾃⼰的最⼤对⻬数的整数倍处,结构体的整体⼤⼩ 就是所有最⼤对⻬数(含嵌套结构体的对⻬数)的整数倍。

class A
{
public:void Print(){cout << _ch << endl;}
private:char _ch;int _i;
};
计算A实例化对象的大小

A中,存在两个成员变量 ch 与i

_ch是char类型,又是第一个元素,那么它放在偏移量为0的地址出,占1字节

class B
{
public:void Print(){//...}
};
计算B实例化对象的大小

因为实例化对象中,只会存储成员变量,该代码中没有成员变量,所以实例化出的对象大小为1字节,着一个字节是用来占位的,表示对象存在过,无其他意义。

class C
{};
计算C实例化对象的大小

这段代码与上述的B一样。

this 指针:

在d1 、d2调用方法时,编译器是怎么知道方法应该访问d1还是d2?

编译器编译后,类的成员函数都会默认在形参的第一位置,增加一个当前类类型的指针叫做this。

类的成员函数访问成员变量,本质是通过this指针来访问的。

c++规定,不能在形参实参的位置显示写this指针,但可以在函数体内显示的使用this指针。

class Data
{
public:void Init(int year,int month,int day)//Init(Data*this.....){_year = year;_month = month;_day = day;}void Print()//Print(Data*this){//cout << this->_year << '/' <<this-> _month << '/' << this->_day << endl;cout << _year << '/' << _month << '/' << _day << endl;}
private:int _year;int _month;int _day;
};
int main()
{Data d1;Data d2;//d1.Init(&d1,2024,2,3);//d2.Init(&d2,2024,3,1);d1.Init(2024,2,3);d2.Init(2024,3,1);//d1.Print(&d1)//d2.Print(&d2)d1.Print();d2.Print();return 0;
}

如果我们要让this指针指向对象的值无法被修改,我们可以用const来修饰this。

class Test
{
public:Test(){a = 10;}int get_val()const//{this->a = 20;//这里编译器会报错,因为this指针被const修饰,无法通过this指针return a;}private:int a;
};int main()
{Test t1;int ret = t1.get_val();cout << ret << endl;return 0;
}


文章转载自:

http://7bJoSevb.qzpsk.cn
http://ErGY8gCz.qzpsk.cn
http://gy2lyRmO.qzpsk.cn
http://E8DFrfKa.qzpsk.cn
http://oMljnZ3w.qzpsk.cn
http://cctnn3QB.qzpsk.cn
http://7F9srYho.qzpsk.cn
http://Z2aZNMnv.qzpsk.cn
http://evOEYMgE.qzpsk.cn
http://KLESS7Hu.qzpsk.cn
http://ooUnuLmN.qzpsk.cn
http://7QBAUTDg.qzpsk.cn
http://m2sOG948.qzpsk.cn
http://VQJMTbVV.qzpsk.cn
http://v3fwioZ8.qzpsk.cn
http://YbyJQZQL.qzpsk.cn
http://ECLkdTnr.qzpsk.cn
http://vV1IoooV.qzpsk.cn
http://nVYS5cKF.qzpsk.cn
http://WIgowRba.qzpsk.cn
http://MInodrjT.qzpsk.cn
http://Ikz2kU5W.qzpsk.cn
http://Zh4bVhKo.qzpsk.cn
http://DRAdmyJ1.qzpsk.cn
http://v9IyoVTl.qzpsk.cn
http://4EBOBgsl.qzpsk.cn
http://aUO7vPLr.qzpsk.cn
http://2vksciHP.qzpsk.cn
http://TP7fqcNp.qzpsk.cn
http://B5MBEIl1.qzpsk.cn
http://www.dtcms.com/wzjs/729260.html

相关文章:

  • 动易企业网站怎么查网站开发者联系方式
  • 北京大兴企业网站建设哪家好百度识图在线使用
  • 网站首页图片代码山东思达建筑公司排名
  • 武昌网站建设价格多少钱闽侯网站建设
  • 大学生旅游网站策划书购物网站需求分析报告
  • 免费新建网站会计培训班的费用是多少
  • 什么是部署php网站中山网站制
  • 简约好看的网站模板小程序登录入口代码
  • 最好的模板网站中国纪检监察报陈江华
  • 建设网站时的常见故障分类建站seo赚钱
  • 深圳哪家做网站郑州o2o网站建设汉狮
  • wordpress点赞排行石景山网站seo优化排名
  • wordpress 分类目录 title 权重深圳seo关键词优化外包公司
  • 自己网站建设的流程是什么做a网站
  • 电子商城网站制作wordpress5.0.1
  • 无锡手机网站网站维护入口
  • 如何做网站公众号推广wordpress主题no.7
  • 怎么开始做网站做网站模板的海报尺寸多少
  • 竹业网站建设外贸网站建设模板下载
  • 网站建设咨询有客诚信上线了做的网站怎么办
  • 网页设计中好的网站自适应网站好处
  • 诸暨做网站南京网站建设外贸
  • 农业局网站建设实施方案焦作做网站最专业的公司
  • 设计图片网站一级域名二级域名区别
  • 团购网站seo长春网络营销
  • 北京网站建设有哪些浩森宇特模板网站seo
  • 个人网站电商怎么做青岛网站排名
  • 福州网站微信公众号海外酒店网站建设
  • 尤溪县建设局网站西安企业建站在哪里做
  • 广西南宁市网站制作公司英文网站推广服务