8 棉猴

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 4k+

C++类成员函数中的名字查找

在C++类的成员函数中,名字查找是按照由内到外进行的。首先查找成员函数中的名字,之后再查找类中定义的名字,最后查找类外定义的名字。1 查找顺序自定义类MyClass代码如下inti = 1;classMyClass{ public: inti = 2; voidmyFunc() { inti = 3; intj =i; }};其中,在MyClass类的成员函数myFunc()中使用了变量i,而在myFunc()函数、My...

2020-10-24 11:40:16

C++中类中使用定义的类型别名

1 typedef定义类型别名1.1 使用方法在C++中,typedef关键字用来定义类型的别名。typedef intMYINT;此时,MYINT是int的别名,可以将MYINT作为数据类型来定义其他变量。MYINT myint;其中,myint的类型是MYINT 。1.2 注意事项不能使用typedef对类型别名MYINT进行重复定义。typedefintMYINT;typedefdoubleMYINT;此时,编译器报错,报错信息为“ erro...

2020-10-20 10:42:58

C++中类的名字查找

1 类的成员函数定义代码的名字查找C++中编译类代码时,首先编译类的所有声明,只有再编译类的成员函数的定义代码。也就是说,在类的成员函数的代码中,可以使用在其后声明的变量。classMyClass{ intgetValue() { returni; } inti;};在以上代码中,类MyClass的成员函数getValue()虽然定义在成员变量i之前,但是也可以使用该变量。2 类的成员函数声明代码的名字查找在编译成员函数声明的代码时,名字查找是从声明代码处...

2020-10-17 17:10:31

C++中在类外部定义的成员函数

类的成员函数可以在类内部定义,也可以在类的外部定义。当定义在类的外部时,需要同时提供类名和函数名。1 类外部定义成员函数代码如下所示classMyClass{ voidmyFunc(); inti;};voidMyClass::myFunc() { i = 1;}此时类MyClass的成员函数myFunc()在MyClass类之外定义。虽然myFunc()函数看上去没有在类的作用域之内,但是由于提供了MyClass类,实际上这时myFunc()就已经在类的作用域之...

2020-10-14 10:22:21

C++中友元的使用4-4

定义友元函数的代码与声明友元的代码没有先后顺序,例如如下代码:classMyClass{ friendvoidf();};voidf() {}和voidf() {}classMyClass{friendvoidf();};以上两段代码等价。需要注意的是,如果在声明友元的类的内部使用该友元函数,必须要在类外部声明该函数,如果函数定义在类内部,此时也需要在类外部对该函数进行声明。classMyClass{ friendvoidf() {};...

2020-10-10 10:35:54

C++中友元的使用方法(4-3)

在《C++中友元的使用4-1》中提到,可以将函数声明为类的友元,这个函数就可以访问该类的private成员。我们也可以将类B声明为类A的友元,这样,在类B中就可以访问类A的private成员了。1 将类声明为友元类A的定义如下所示classA{ private: inti{ 1 }; friendclassB;};在A的定义中,将类B声明为友元。类B的定义方式如下所示classB{ public: intgetValue() {...

2020-10-09 12:02:44

C++中类的前向声明

在C++中可以只对类进行声明,而不对其进行定义,例如class MyClass;该声明会向程序引入名字MyClass并且指明MyClass是一种类类型。这种对类的声明叫做前向声明。1 使用前向声明1.1 声明指针或引用在声明了类之后,可以定义指向这种类的指针或引用。MyClass* pmc;MyClass& rmc = *pmc;此时,只是说明pmc是一个指针,该指针指向了MyClass,可以不必关心MyClass具体的结构,引用变量rmc的情况也是一样的。1.

2020-09-30 09:46:18

C++类的返回值是*this的成员函数

当C++类的成员函数其返回值是*this时,表示返回值是调用该成员函数的变量的引用。例如classA{public: A& func1() { return*this; }int i{0};}此时,类A的成员函数func1的返回值是*this,该成员函数的返回值类型是A&。1 返回值是左值func1()函数的返回值是类型A的引用,该返回值是左值。也就是说,此时返回的是调用该函数的对象本身,通过该返回值可以调用该对象的其他成员函数或者对其他成员变量...

2020-09-29 10:00:34

C++中的mutabel关键字

mutable关键字一般在C++的类中使用,表示可变数据成员。可变数据成员可以在类的const成员函数中被修改。1 类的const成员函数类的const成员函数不能修改类的成员变量,声明const成员函数的方法是在函数的小括号之后加入const修饰符。classA{ public: inti{ 0 }; voidfunc()const{ }};其中,func是类A的const成员函数。如果在func()函数中修改i的值,voidfunc()c...

2020-09-25 10:47:53

C++中类初始值列表与类内初始化

类的构造函数的作用是对其成员进行初始化。而在构造函数中可以使用初始值列表为新创建的对象的成员进行赋值。1 初始值列表在类的构造函数名之后紧跟着冒号,冒号后面是要初始化的成员名,之后是圆括号或者花括号括起来的初始值。这样的结构就是构造函数的初始值列表,如下所示。classA{ public: A() :a(1),b(2){}; inta; intb;};其中,自定义类A具有一个包含了初始值列表的构造函数,使用该构造函数创建对象时,该对象的成员变量a的值...

2020-09-22 12:18:56

C++中类的默认构造函数

在《C++中类的合成的默认构造函数2-1》和《C++中类的合成的默认构造函数2-2》中提到,如果类中没有显式地定义默认构造函数,则C++编译器会为其创造一个合成的默认构造函数,如果类中已经定义了其他格式的构造函数,此时C++编译器不会再为其合成默认构造函数。而定义类时,最好要定义其默认的构造函数。1 使用default关键字定义默认构造函数在C++11中,引入了default关键字来定义默认构造函数。class MyStruct {MyStruct() = default;};在以

2020-09-02 16:57:34

C++中类的合成的默认构造函数2-2

在《C++中类的合成的默认构造函数2-1》中提到,当类没有定义默认构造函数时,C++编译器为该类自动生成一个合成的默认构造函数。当使用合成默认构造函数时,需要注意以下几个事项。1 编译器生成默认构造函数的前提只有当类没有声明任何构造函数时,C++编译器才会自动地生成默认构造函数。也就是说,一旦类定义了其他格式的构造函数,C++编译器不会为其生成默认构造函数。structMyStruct{ inti; MyStruct(inta) { a= i; }};其中...

2020-08-18 11:12:01

C++中类的合成默认构造函数2-1

1 构造函数类的构造函数指定了它的对象被初始化的方式,只要类的对象被创建,就会调用该类的构造函数。2 默认构造函数类的默认构造函数是一个特殊的构造函数,控制类成员的默认初始化。默认构造函数无需任何实参。3 合成的默认构造函数3.1 定义如果类没有显式地定义默认构造函数,则编译器会为该类自动创建一个构造函数,由编译器创建的默认构造函数叫做合成的默认构造函数。3.2 初始化的规则有如下自定义类structMyStruct{ inti; intj = 1;...

2020-08-18 11:05:50

Kali Linxu中打开Apache服务

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。1在Kali Linxu中使用默认端口打开Apache服务在Kali Linux2中,使用的是Apache2服务,在Kali Linxu终端中使用service指令打开Apache2服务,如图1所示。图1 打开Apache2服务在其他电脑的浏览器中输入Kali Linux的IP地址,如图2所示,可以看到Apache2服务已经.

2020-08-11 09:55:23

Android Studio中Gradle的Daemon

在通过Android Studio运行项目时,都会有启动Gradle Daemon的构建信息,如图1所示。图1 启动Gradle Daemon1 Gradle Daemon简介Gradle Daemon是Gradle的守护进程,使用守护进程的目的是改善Gradle的启动和执行时间。2 使用Gradle Daemon的好处在Android Studio中使用Gradle Daemon,可以减少没启动Java虚拟机的初始化时间、提供Android Studio程序的构建效率以及缓存.

2020-08-10 11:51:32

C++中友元的使用(4-1)

1 friend介绍friend的中文含义是“友元”,用来在类外部使用该类的private和protected成员。例如,定义MyClass类如下所示classMyClass{ public: MyClass(stringname) { m_name =name; } private: stringm_name;};自定义函数ShowName()的定义为voidShowName(MyClassmy){ cou...

2020-08-07 09:16:35

C++中类成员函数的this参数

在C++中,如果某个类的成员函数中使用了该类的成员(成员变量或成员函数),则该成员函数会通过一个名为this的隐式参数来访问这个成员(成员变量或成员函数)。例如,有一个类classmyClass() {public: intm_i; intgetI() { returnm_i; }}其中,成员函数getI()中使用了该类的成员变量m_i,因此getI()函数实际上包含了一个隐藏的参数this,int getI(this){return this-...

2020-08-06 18:04:26

C++中bad_alloc类

当分配内存的请求没有被成功执行时,系统会抛出一个用bad_alloc类来描述出的异常。1 定义bad_alloc类的定义如下所示classbad_alloc: publicexception{ bad_alloc(); virtual~bad_alloc(); bad_alloc(constbad_alloc&); bad_alloc& operator=(constbad_alloc&); constchar*...

2020-08-06 15:52:58

C++中类的常量成员函数

类的常量成员函数(const member function)是类的成员函数,其定义的方式是将const关键字放在成员函数参数列表之后。要说明常量成员函数的用途,首先从类成员的隐式参数this说起。1 this参数1.1 this参数介绍structA{ inta; A(intparam) { a=param; } intgeta() { returna; }};以上代码自定义了类A,该结构包含了自定义的构造函数和geta()成...

2020-08-05 09:25:54

Android Studio安装虚拟机的方法(2-2)

接下来就是下载选中的组件,即指定的SDK,如图5所示。图5 下载组件下载并安装完成后,点击图6的“Finish”按键。图6 安装完成之后,在弹出的图7对话框中,可以设置虚拟机的名字、ID、像素、屏幕显示方式(水平或垂直)、摄像头以及网络等属性。在此,使用默认值即可,点击“Finish”按键。图7 设置虚拟机属性接下来就可以在虚拟设备列表中看到创建的虚拟机了,如图8所示,点击列表“Action”中的三角形按键,如图8所示。图8 启动虚拟机...

2020-08-04 11:48:54

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 1024勋章
    1024勋章
    #1024程序员节#连续参与两年活动升级勋章,当日发布原创博客即可获得
  • 蓝花
    蓝花
    子板块内专家分月排名榜第三