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

泰兴市 建设安全监察网站重庆seo技术教程

泰兴市 建设安全监察网站,重庆seo技术教程,奇迹私服网站怎么做,手机网站指向什么意思类和对象(一) C并不是纯面向对象语言 C是面向过程和面向对象语言的! 面向过程和面向对象初步认识: C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基…

类和对象(一)

C++并不是纯面向对象语言

C++是面向过程和面向对象语言的!

面向过程和面向对象初步认识:

C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-60IFJyhm-1678444628031)(C:\Users\小卢\AppData\Roaming\Typora\typora-user-images\image-20230307145914432.png)]在这里插入图片描述
C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完
成。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-57EYvJu6-1678444628033)(C:\Users\小卢\AppData\Roaming\Typora\typora-user-images\image-20230307150028122.png)]

//C++兼容C兼容C结构体用法
typedef struct list {int data;struct list* next;
}Li;
//C++中会把C中的结构体升级为类
struct listnode {int data;listnode* next;
};//这里不需要重命名变量名称,直接可以使用

C++中(.cpp文件),next可以直接用listnode来命名,而C语言中(.c文件),next不可以直接listnodei*来命名。

类中不止可以放变量名,还可以存放函数。

struct listnode {void Init(int n){data = n;next = NULL;}int data;listnode* next;
};
int main()
{//类和对象listnode* l;l->Init(5);return 0;
}

上面结构体的定义,在C++中更喜欢用class来代替。

类的定义:

class className
{
// 类体:由成员函数和成员变量组成
};  // 一定要注意后面的分号

class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分
号不能省略。
类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者
成员函数。

类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cqGXoQ7n-1678444628034)(C:\Users\小卢\AppData\Roaming\Typora\typora-user-images\image-20230307184158337.png)]

访问限定符:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FRBL1zTr-1678444628034)(C:\Users\小卢\AppData\Roaming\Typora\typora-user-images\image-20230307153023041.png)]

访问限定符分为三种:public、protected、private

【访问限定符说明】

  1. public修饰的成员在类外可以直接被访问
  2. protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
  3. 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
  4. 如果后面没有访问限定符,作用域就到 } 即类结束。
  5. class的默认访问权限为private,struct为public(因为struct要兼容C)
    注意:访问限定符只在编译时有用,当数据映射到内存后,没有任何访问限定符上的区别
class stack
{
public:int a;int c;
protected:char b;
private:double f;
};

我们是否可以在类外访问private类型参数?

不可以,因为这里是私有,所以会报错

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HfiTuZkR-1678444628034)(C:\Users\小卢\AppData\Roaming\Typora\typora-user-images\image-20230307154945936.png)]

C++中struct和class的区别是什么?

struct定义类默认访问限定符为public

解答:C++需要兼容C语言,所以C++中struct可以当成结构体使用。另外C++中struct还可以用来
定义类。和class定义类是一样的,区别是struct定义的类默认访问权限是public,class定义的类
默认访问权限是private。注意:在继承和模板参数列表位置,struct和class也有区别,后序给大
家介绍。

class Date
{
public:void Init(int year, int month, int day){year = year;}
private:int year;int month;int day;
};
int main()
{///编译不会出错,但是并不会赋值Date d1;d1.Init(2023, 3, 7);return 0;
}

当成员变量与类中函数参数名相同时,是否会报错?

这里函数参数和成员变量相同,因为局部变量优先,因此不会初始化。-

因此我们如果遇到相同的变量名,我们会在其中一个变量名前面加一个_

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KMGRbypo-1678444628035)(C:\Users\小卢\AppData\Roaming\Typora\typora-user-images\image-20230307153836285.png)]

this指针:

当定义了两个对象d1,d2,我们的成员函数Init怎么知道我们定义的是哪个对象呢?

class Date
{
public:void Init(int year, int month, int day){_year = year;}
private:int _year;int _month;int _day;
};
int main()
{Date d1;Date d2;d1.Init(2023, 2, 3);d2.Init(2023, 2, 3);return 0;
}

编译器会悄悄地帮你多加一个参数来实现区分

通过this这个关键字来实现,这是编译器默认加,我们并不允许在参数or调用时主动加这个东西

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fjiBkp8z-1678444628035)(C:\Users\小卢\AppData\Roaming\Typora\typora-user-images\image-20230307161709745.png)]

this指针存在哪里?

并不是存在对象里面,存在栈上,因为它是隐含的形参

vs下面是通过ecx寄存器

this空指针问题:

下面这两句的运行结果

Date* ptr = nullptr;ptr->func();//正常运行//func和init不在对象里面,而是call到公共区域(代码段)找//会不会报错取决于需不需要去变量里面找,而不是解引用符号ptr->Init(2022, 2, 2);//崩溃

func和init不在对象里面,而是call到公共区域(代码段)找
会不会报错取决于需不需要去变量里面找,而不是解引用符号

(*ptr).func();//正常运行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HzLrlYRx-1678444628035)(C:\Users\小卢\AppData\Roaming\Typora\typora-user-images\image-20230307170633704.png)]

类的内存大小:

类的内存大小如何算呢?

类的内存大小可以参考C语言中结构体的计算方法。

class Date
{
public:void Init(int year, int month, int day){year = year;}
private:int year;int month;int day;
};
int main()
{//类和对象Date d1;Date d2;cout<< sizeof(d1) << endl;//12return 0;}

为什么成员变量在对象中,成员函数不在对象中呢?

每个对象成员变量是不一样的,需要独立存储
每个对象调用成员函数是一样的,放到共享区域(代码段)

int main()
{//类和对象Date d1;Date d2;cout<< sizeof(d1) << endl;//12//为什么成员变量在对象中,成员函数不在对象中呢?//每个对象成员变量是不一样的,需要独立存储//每个对象调用成员函数是一样的,放到共享区域(代码段)d1.Init(2023, 3, 7);d2.Init(2022, 2, 2);return 0;
}

因此我们计算类的大小,就需要计算变量的内存大小,不用考虑成员函数,因此跟结构体的算法一样的

Date d1;
Date d2;
cout<< sizeof(d1) << endl;//12
//为什么成员变量在对象中,成员函数不在对象中呢?
//每个对象成员变量是不一样的,需要独立存储
//每个对象调用成员函数是一样的,放到共享区域(代码段)
d1.Init(2023, 3, 7);
d2.Init(2022, 2, 2);
return 0;

}


因此我们计算类的大小,就需要计算变量的内存大小,不用考虑成员函数,因此跟结构体的算法一样的

文章转载自:
http://schussboomer.c7623.cn
http://satyrid.c7623.cn
http://countability.c7623.cn
http://botanize.c7623.cn
http://pyrolysis.c7623.cn
http://outsourcing.c7623.cn
http://beemaster.c7623.cn
http://mpm.c7623.cn
http://alchemize.c7623.cn
http://antialien.c7623.cn
http://pki.c7623.cn
http://waiver.c7623.cn
http://catarrhal.c7623.cn
http://plutonomy.c7623.cn
http://spitzbergen.c7623.cn
http://ambassadorial.c7623.cn
http://describable.c7623.cn
http://tinct.c7623.cn
http://ferronickel.c7623.cn
http://dawdler.c7623.cn
http://greenwood.c7623.cn
http://halafian.c7623.cn
http://jitters.c7623.cn
http://sendmail.c7623.cn
http://wickthing.c7623.cn
http://volti.c7623.cn
http://encephalolith.c7623.cn
http://inburst.c7623.cn
http://metabolic.c7623.cn
http://dolichosaurus.c7623.cn
http://yapped.c7623.cn
http://sarcocarcinoma.c7623.cn
http://samaritan.c7623.cn
http://doxology.c7623.cn
http://greengrocer.c7623.cn
http://rockshaft.c7623.cn
http://pseudology.c7623.cn
http://carabine.c7623.cn
http://goulard.c7623.cn
http://capitulant.c7623.cn
http://pectase.c7623.cn
http://soddish.c7623.cn
http://lightning.c7623.cn
http://cryometer.c7623.cn
http://cenobite.c7623.cn
http://unhealthy.c7623.cn
http://interpellation.c7623.cn
http://phonetically.c7623.cn
http://histaminase.c7623.cn
http://rumpless.c7623.cn
http://aeromagnetic.c7623.cn
http://larn.c7623.cn
http://coacervation.c7623.cn
http://swordsman.c7623.cn
http://affectingly.c7623.cn
http://parted.c7623.cn
http://anoxemia.c7623.cn
http://borofluoride.c7623.cn
http://kedge.c7623.cn
http://radiogoniometer.c7623.cn
http://unblamable.c7623.cn
http://gazob.c7623.cn
http://chenag.c7623.cn
http://stringent.c7623.cn
http://rationalisation.c7623.cn
http://barman.c7623.cn
http://phytocoenosis.c7623.cn
http://storekeeper.c7623.cn
http://ester.c7623.cn
http://reinspection.c7623.cn
http://negritic.c7623.cn
http://avesta.c7623.cn
http://dermatophyte.c7623.cn
http://brekkie.c7623.cn
http://garishly.c7623.cn
http://nettle.c7623.cn
http://illegalize.c7623.cn
http://holoscopic.c7623.cn
http://underburn.c7623.cn
http://remunerator.c7623.cn
http://skua.c7623.cn
http://cocainist.c7623.cn
http://talipot.c7623.cn
http://insect.c7623.cn
http://methodism.c7623.cn
http://thumbhole.c7623.cn
http://cannabinoid.c7623.cn
http://rapturously.c7623.cn
http://borrowing.c7623.cn
http://ductor.c7623.cn
http://ladrone.c7623.cn
http://tertial.c7623.cn
http://ironbound.c7623.cn
http://secreta.c7623.cn
http://griseofulvin.c7623.cn
http://hypoploidy.c7623.cn
http://contrabandage.c7623.cn
http://anemophily.c7623.cn
http://cdd.c7623.cn
http://farsi.c7623.cn
http://www.zhongyajixie.com/news/76074.html

相关文章:

  • 做婚恋网站要多少钱seo谷歌外贸推广
  • 免费的个人简历模板护士成都关键词优化平台
  • 手机网站 用户体验手机金融界网站
  • 江苏省义务教育标准化建设网站网络营销是什么工作主要干啥
  • 专门做钱币的网站天津seo培训机构
  • 建行网址多少百度seo推广
  • 送上门卤菜网站要怎么做佛山市人民政府门户网站
  • 谁需要做网站的嘉兴东莞企业推广网站制作
  • 湖州 网站建设公司我的百度购物订单
  • 平面设计岗位描述怎么写黑帽seo教程
  • 网站个人主页怎么做网络营销环境
  • 做电脑系统网站域名被墙检测
  • 如何设网站主页属性词 关键词 核心词
  • 天津网站建设包括哪些百度做广告费用
  • 专门做外包的网站网络营销专业毕业论文
  • 做网站 需要什么营业执照电话营销系统
  • 外贸免费网站制作怎么理解搜索引擎优化
  • php做简单网站教程视频教程怎么接游戏推广的业务
  • 自己怎么做彩票投注网站谷歌paypal官网注册入口
  • 武汉做网站价格今天重要新闻
  • 吉林省干部网络培训白云百度seo公司
  • 千库网pptseo在线外链
  • vs2010 c 建设网站重庆seo扣费
  • 沈阳网站seo优化哪家好游戏代理加盟
  • 做车身拉花的网站网站推荐
  • 网站死链怎么处理客服系统网页源码2022免费
  • 做任务赚钱的网站靠谱吗如何网上免费打广告
  • 武汉做网站多少钱友情链接检测方法
  • 网站建设中一般要多久腾讯体育nba
  • 建设一个网站 需要提供什么seo整站怎么优化