c++ study diary4

编程入门 行业动态 更新时间:2024-10-22 13:42:37

c++ <a href=https://www.elefans.com/category/jswz/34/1763959.html style=study diary4"/>

c++ study diary4

16.1.24

一、调用构造函数与析构函数的顺序

先构造的后析构,后构造的先析构(类似于栈)。

二、对象数组

数组不仅可以有简单对象组成,也可以由类对象组成。

如:

Student stud[3];

如果数组有多个实参,可以如下定义

Student stud[3]={student(1001,18,87),student(1002,19,76),student(1003,78,72)};

实例:

#include<fstream>

#include<iostream>

#include<string>

#include<vector>

#include<iomanip>

using namespace std;

class box

{public:

box(int h=10,int w=12,intlen=15):height(h),width(w),length(len){

}

int volume();      \\定义函数一定要带()!!

private:

         intheight;

         intwidth;

         intlength;

};

int box::volume(){

         return(height*width*length);

}

int main(){

         boxa[3]={

         box(2,3,4),box(2,4,5),box(3,5,6)};

         cout<<a[0].volume()<<endl;

         cout<<a[1].volume()<<endl;

         cout<<a[2].volume()<<endl;

}

三、对象指针

①指向对象的指针

在建立对象时,编译系统为每一个对象分配一定存储空间。对象空间的起始地址就是对象指针。

类名 *对象指针名

class time

{

         public:

                   inthour;

                   intminute;

                   intsec;

                   voidget_time();

};

void get_time::()

{cout<<hour<<':'<<minute<<':'<<sec<<endl;

}

Time *p;

Time t;

P=&t;

②指向对象成员的指针

对象中的成员也有地址,存放对象成员地址的指针变量就是指向对象成员的指针变量。

Int *p;

P=&t.hour;

③指向对象成员函数的指针

指向对象成员函数的指针变量的方法和定义指向普通函数的指针不同

普通函数类型名(*指针变量名)(参数列表)

Void(*P)()\\ p是指向void型函数的指针

定义指向成员函数的指针

数据类型名(类名::*指针变量名)();

Void(time::*p)()

指针变量名=&类名::成员函数名

P=&time::get_time;

using namespace std;

class time

{

         public:

                   time(inth,int m,int s);

                   inthour;

                   intminute;

                   intsec;

                   voidget_time();

        

};

time::time(int h,int m,int s){

         hour=h;

         minute=m;

         sec=s;

}

void time::get_time()

{cout<<hour<<':'<<minute<<':'<<sec<<endl;

}

int main(){

time t(3,4,5);

int *p1=&t.hour;

cout <<*p1<<endl;

t.get_time();

time *p2=&t;

p2->get_time();

void(time::*p3)();

p3=&time::get_time;     \\成员函数名,没有()!!

(t.*p3)();

}

④this指针

This指针指向本来对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址。

Int box::volume(){    },c++处理为int box::volume(box*this){return(this->height*this->width*this->length);}

*this代表this所指的成员函数

四、常对象

①类名 const 对象名(实参数)

或者:const 类名对象名(实参数),常对象有必要初始化,初始化过后不能改变。

②常数据成员

    可以通过构造函数的参数初始化表对常数据成员进行初始化。不能对常数据成员进行赋值。

Time::time(int h){

Hour=h;}  \\错误,不能进行赋值!!

Time::time(int h):hour(h){}

③常成员函数

类型名 函数名(参数表)const

④指向对象的常指针

Int const *p,consint *p\\p为指针常量,不能通过p来改变变量的值

Int *const p   \\  p的所指不能改变

Cons int &t1=t  \\t1是对t的引用,二者指向同一存储空间,t的值不能改变

更多推荐

c++ study diary4

本文发布于:2024-02-12 04:57:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1686158.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:study

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!