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

哪些网站可以做edge主页google网页版入口

哪些网站可以做edge主页,google网页版入口,制作人漫画,wordpress 弹图插件目录 1. 什么是类 2. 如何定义出一个类 3. 类的访问限定符 4. 类的作用域 5. 类的实例化 6. 类的大小 7. this指针 1.this指针的引出 2. this指针的特性 8. 面试题 1. 什么是类 在C语言中,不同类型的数据集合体是结构体。为了方便管理结构体,我…

目录

1. 什么是类

2. 如何定义出一个类

3. 类的访问限定符

4. 类的作用域

5. 类的实例化

6. 类的大小

7. this指针

1.this指针的引出

2. this指针的特性

8. 面试题


1. 什么是类

在C语言中,不同类型的数据集合体是结构体。为了方便管理结构体,我们经常会为此而编写出各种针对于这个结构体的函数(如:在C语言中为了方便管理顺序表,我们经常为此写出许多针对于该顺序表的增删查改的函数)。为了方便管理数据集合体,以及针对于该数据集合体的函数。我们将它们都打包起来,将函数作为成员一起纳入了该数据集合体中。此外,这也方便了我们对变量和函数进行命名。

2. 如何定义出一个类

class className
{
// 类体:由成员函数和成员变量组成
};  // 一定要注意后面的分号
class 定义类的 关键字, ClassName 为类的名字, {} 中为类的主体,注意 类定义结束时后面
号不能省略
类体中内容称为 类的成员: 类中的 变量 称为 类的属性 成员变量 ; 类中的 函数 称为 类的方法 或者
成员函数 。 值得注意的是, 类的定义有两种。第一种是类中的成员函数在类当中定义;第二种是类中的成员函数在类当中声明,在其他文件中定义。
如:
在实际当中,我们定义一个类经常都是采用声明定义分离的方法。当然了,你也可以部分简单的函数在类中定义,其余的函数在其他文件定义。

3. 类的访问限定符

C++ 实现封装的方式: 用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选
择性的将其接口提供给外部的用户使用。
【访问限定符说明】
1. public 修饰的成员在类外可以直接被访问
2. protected private 修饰的成员在类外不能直接被访问 ( 此处 protected private 是类似的 )
3. 访问权限 作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
4. 如果后面没有访问限定符,作用域就到 } 即类结束。
5. class 的默认访问权限为 private struct public( 因为 struct 要兼容 C)
注意:访问限定符只在编译时有用,当数据映射到内存后,没有任何访问限定符上的区别

4. 类的作用域

类定义了一个新的作用域 ,类的所有成员都在类的作用域中 在类体外定义成员时,需要使用 ::
作用域操作符指明成员属于哪个类域。
class Person
{
public:void PrintPersonInfo();
private:char _name[20];char _gender[3];int  _age;
};// 这里需要指定PrintPersonInfo是属于Person这个类域
void Person::PrintPersonInfo()
{cout << _name << " "<< _gender << " " << _age << endl;
}

5. 类的实例化

用类这个类型创建对象的过程,称为类的实例化
class Person
{
private:int _age;char _name[20];
public:print();
};int main()
{Person a;return 0;
}

以上就称为类的实例化。

值得注意的是类是没有内存空间的,只有实例化后的类才有内存空间。类就好比一个房子的建造图纸,实例化后的类就是建好后的房子。还没开始建造的房子当然无法使用。因此再未实例化之前你是无法使用类的。

int main()
{Person._age = 100;   // 编译失败:error C2059: 语法错误:“.”return 0;
}

6. 类的大小

类的内存依旧是遵循内存对齐的机制,值得注意的是一个实例化后的类的内存是与其成员函数没有关系的(它的成员函数储存在代码段中)。因为如果每个对象中都会保存一份代码,而所有的类的成员函数都是一模一样的,相同代码保存多次,浪费空间。

7. this指针

1.this指针的引出

我们先来定义一个日期类 Date
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(2022,1,11);d2.Init(2022, 1, 12);d1.Print();d2.Print();return 0;
}
对于上述类,有这样的一个问题:
Date 类中有 Init Print 两个成员函数,函数体中没有关于不同对象的区分,那当 d1 调用 Init
数时,该函数是如何知道应该设置 d1 对象,而不是设置 d2 对象呢?
C++ 中通过引入 this 指针解决该问题,即: C++ 编译器给每个 非静态的成员函数 增加了一个隐藏
的指针参数,让该指针指向当前对象 ( 函数运行时调用该函数的对象 ) ,在函数体中所有 成员变量
的操作,都是通过该指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编
译器自动完成

2. this指针的特性

1. this 指针的类型:类类型 * const ,即成员函数中,不能给 this 指针赋值。
2. 只能在 成员函数 的内部使用
3. this 指针本质上是 成员函数 的形参 ,当对象调用成员函数时,将对象地址作为实参传递给
this 形参。所以 对象中不存储 this 指针
4. this 指针是 成员函数 第一个隐含的指针形参,一般情况由编译器通过 ecx 寄存器自动传
递,不需要用户传递

8. 面试题

1. this 指针存在哪里?
2. 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;
}// 1.下面程序编译运行结果是? A、编译报错 B、运行崩溃 C、正常运行
class A
{
public:void PrintA(){cout << _a << endl;}
private:int _a;
};int main()
{A* p = nullptr;p->PrintA();return 0;
}

http://www.shuangfujiaoyu.com/news/23839.html

相关文章:

  • 拼多多代运营上海百度推广优化公司
  • 找最新游戏做视频网站谷歌google搜索引擎入口
  • 东阳网站制作域名推荐
  • 网站如何做会员登录页面seo搜索引擎推广
  • 手机h5建站行业网络营销
  • 乐清做网站的公司网站制作价格
  • 成都响应式网站建设苏州seo网站公司
  • 设置网站默认编码今日新闻摘抄十条简短
  • 大连做网站的公司有哪些seo网站推广全程实例
  • 做酒网站设计网站排行榜前十名
  • 网站设计策划案搜索引擎优化的主要手段
  • 网站的制作方案电脑培训学校
  • 网站cms企业自己怎么注册网站
  • 用vs2015做网站百度云资源搜索入口
  • 成人网站模板模板it培训机构哪个好一点
  • 南京便宜网站建设安卓aso
  • 郑州营销型网站制作网站功能
  • 深圳做棋牌网站建设找哪家公司好广州高端网站建设公司
  • sem竞价推广百度关键词优化查询
  • 做网站能拿多少钱网页搜索快捷键是什么
  • 营销型网站的建设规划百度推广公司怎么代理到的
  • 国外网站有备案吗郑州seo优化哪家好
  • 长沙市建设厅网站自己的网站怎么建立
  • 南通哪些公司做网站网站如何让百度收录
  • 务川网站建设wguser随州今日头条新闻
  • 深圳网站建设fantodoseo网站搜索优化
  • 上网站建设百度口碑网
  • 如何成为网站开发工程师东莞优化网站制作
  • 柳州网站建设百度推广投诉热线
  • 网站的建设与维护实践报告引擎优化搜索