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

盲盒怎么制作教程seo标签怎么优化

盲盒怎么制作教程,seo标签怎么优化,做好网站,网站建设报价表目录 1.类的定义 2.类的访问限定符及封装 2.1类的访问限定符 2.2封装 3.类的作用域 4.类的实例化 5.类的大小 6.this 指针 1.类的定义 class className {// 类体:由成员函数和成员变量组成}; // 一定要注意后面的分号 class为定义类的关键字,Clas…

目录

1.类的定义

2.类的访问限定符及封装

  2.1类的访问限定符

  2.2封装

3.类的作用域

4.类的实例化

5.类的大小

6.this 指针


1.类的定义

class className
{// 类体:由成员函数和成员变量组成}; // 一定要注意后面的分号
        class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省
        类体中内容称为类的成员:类中的变量称为类的属性成员变量; 类中的函数称为类的方法或者成员函数
        类的两种定义方式:
1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。
//声明定义放类中
class Date
{
public:void Show(){cout<<_year<<_month<<_day<<endl;}
private:int _year;int _month;int _day;
};
2. 类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::
//声明放在类的头文件date.h中
class Date
{
public:void Show();
private:int _year;int _month;int _day;
};//定义放在cpp文件date.cpp中,成员函数名前加类名::
#include"date.h"void Date::Show()
{    cout<<_year<<_month<<_day<<endl;
}

2.类的访问限定符及封装

  2.1类的访问限定符

        C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用

         

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

  2.2封装

面向对象的三大特性:封装、继承、多态

封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。
封装本质上是一种管理,让用户更方便使用类
C++语言中实现封装,可以通过类将数据以及操作数据的方法进行有机结合,通过访问权限来隐藏对象内部实现细节,控制哪些方法可以在类外部直接被使用

3.类的作用域

        类定义了一个新的作用域,类的所有成员都在类的作用域中,当在类外定义成员时,需要用到::作用域操作符指明在哪个域。

class Date
{
public:void Show();
private:int _year;int _month;int _day;
};//成员函数名前加类名::
void Date::Show()
{    cout<<_year<<_month<<_day<<endl;
}

4.类的实例化

类类型创建对象的过程,叫做类的实例化。

1. 类是对对象进行描述的,是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它。
2. 一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间。
3.类就好比建筑设计图,只需要设计需要什么东西,实例化的对象才能实际的存储数据,占用物理空间。

5.类的大小

        我们通过下列代码来直观的观察下:

结论:一个类的大小,实际就是该类中成员变量之和,当然要注意内存对齐。
空类比较特殊,编译器给了空类一个字节来唯一标识这个类的对象。

 内存对齐请参考我的另一篇blog:(403条消息) 快速学会结构体、枚举、联合-CSDN博客

 留下三道面试题:

【面试题】
1. 结构体怎么对齐? 为什么要进行内存对齐?
2. 如何让结构体按照指定的对齐参数进行对齐?能否按照345即任意字节对齐?
3. 什么是大小端?如何测试某台机器是大端还是小端,有没有遇到过要考虑大小端的场景

6.this 指针

我们先来写一个日期类,来讲解这个问题。

class Date
{
public://还没讲到构造函数,先自己写一个初始化函数来讲void Init(int year, int month, int day){_year = year;_month = month;_day = day;}void Print(){cout << _year << "-" << _month << "-" << _day << endl;}
private:int _year; // 年int _month; // 月int _day; // 日
};
int main()
{Date d1, d2;d1.Init(2023, 3, 21);d2.Init(2023, 3, 22);d1.Print();d2.Print();return 0;
}

 

        Date类中有 Init Print 两个成员函数,函数体中没有关于不同对象的区分,那当d1调用 Init 函数时,该函数是如何知道应该设置d1对象,而不是设置d2对象呢?
C++中通过引入this指针解决该问题,即:C++编译器给每个非静态的成员函数增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变量的操作,都是通过该指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成

实际上在成员函数Init中还有一个this指针,只不过他隐藏了起来,我们将其显示写出来看看过程。

 可以看出,实际上是把对象的地址传给this指针来控制对其进行初始化的。

 this指针的特性

1. this指针的类型:类类型* const,即成员函数中,不能给this指针赋值。
2. 只能在成员函数的内部使用
3. this指针本质上是成员函数的形参,当对象调用成员函数时,将对象地址作为实参传递给this形参。 所以对象中不存储this指针
4. this指针是成员函数第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递,不需要用户传递。
【面试题】
1. this指针存在哪里?
        编译器在生成程序时加入了获取对象首地址的相关代码。并把获取的首地址存放在了寄存器ECX中(VC++编译器是放在ECX中,其它编译器有可能不同)。也就是成员函数的其它参数正常都是存放在栈中。而this指针参数则是存放在寄存器中。
        类的静态成员函数因为没有this指针这个参数,所以类的静态成员函数也就无法调用类的非静态成员变量。
2. this指针可以为空吗?

 可以为空,当成员函数中不需要调用成员变量时(打印一个字符串),this为空不会引起错误,如果当成员函数内部需要调用成员变量时,因为要对this进行解引用操作,如果this为空,则会引起错误。

 1.下面程序编译运行结果是? A、编译报错 B、运行崩溃 C、正常运行
class A
{
public:void Print(){cout << "Print()" << endl;}
private:int _a;
};
int main()
{A* p = nullptr;p->Print();return 0;
}C.正常运行
1.下面程序编译运行结果是? A、编译报错 B、运行崩溃 C、正常运行
class A
{
public:void PrintA(){cout << _a << endl;}
private:int _a;
};
int main()
{A* p = nullptr;p->PrintA();return 0;
}
B.运行崩溃
http://www.yayakq.cn/news/71356/

相关文章:

  • 新手做网站推荐wordpress长微博工具
  • 做空比特币的网站怎么优化网站源码关键词
  • 中山市网站制作中国建设网建筑通
  • 东莞建网站的公司广告设计免费软件
  • 网站建设用到什么软件东莞网站制作网站推广价钱
  • 做网站如何语音深圳龙岗做网站的公司哪家好
  • 苏州街网站建设手机网站页面设计要求
  • 提供商城网站制作青山湖网站建设
  • 换网站公司wordpress预览word
  • 深圳网站建设计wordpress建站难不难
  • 如何做网站走查自己买一台服务器做自己的网站
  • 长沙网站优化排名韵博工业设计
  • 给自己的公司做网站怎么做好网站的建设步骤包括什么
  • 浙江平安建设信息系统网站什么是响应式的网站
  • 网站做备案到哪去wordpress标题添加新字
  • 海西州电子商务网站建设公司zencart wordpress
  • 成都 网站建设公司哪家好网站管理员是干什么的
  • 马良行网站3d模型预览怎么做的见网页制作的公司网站
  • 前端开发的发展前景外贸推广seo招聘
  • 如何自己建一个网站网站关键词seo优化怎么做
  • 21dove谁做的的网站如何制作自己的网站书签
  • 深圳网站建设策划美妆网站开发背景
  • 做期货浏览哪些网站seo优化标签
  • 网站站点建设分为网页源代码查找快捷键
  • 生物公司网站建设方案东西湖区网站建设公司
  • 如何在各网站做推广房地产网站建设价格
  • 商鼎营销型网站建设地方门户类网站
  • 网站建设软著thinkphp做网站有什么好处
  • 晋中建设机械网站thinkphp网站优化
  • 淘宝客怎么做的网站推广创建网页文件