类的构造函数,析构函数,动态生成对象

来源:互联网 发布:vb opc 西门子 编辑:程序博客网 时间:2024/06/07 14:06

- - - - - - - - - - - - - 触控未来的日子–Day 47- - - - - - - - - - - - - -

发现一个很好用的函数:strlen (C语言函数)

头文件:string.h
格式:strlen (字符数组名)
功能:计算给定字符串的(unsigned int型)长度,不包括’\0’在内
说明:返回s的长度,不包括结束符NULL。
程序示例:

#include<string.h>#include<stdio.h>int main(void){    char*s="GoldenGlobalView";    printf("%s has %d chars",s,strlen(s));    getchar();    return 0;}//GoldenGlobalView  has  16  chars;

C++输入函数:cin<<变量 与之对应的输出函数是cout<<变量<

构造函数的特点:

1,它是一个普通的函数,但是它又不普通,它的名字和类名是一样的,类一生成对象就会调用这个函数。由于类的封装性,不能像普通函数一样初始化。
2,它是系统自己调用。
3,对类所有变量初始化
4,不能有返回值。

析构函数(destructor)

与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕return了,或者对象被delete了),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。

概念难懂,还是自己敲一遍心理踏实,今天所有的知识点都在这里:

#include<iostream>#include<string>using namespace std;class Clock{public:    int a;    int b;                               //成员属性    Clock(int a,int b,int c);            //构造函数    ~Clock();                            //析构函数    void showtime(void)                  //成员函数    {        cout<<"调用成员函数"<<'\n'<<Hour<<'\n'<<Minute<<'\n'<<Scend<<'\n'<<endl;    };private:      int Hour,Minute,Scend;             //成员变量};Clock::Clock(int a,int b,int c)         //构造函数功能实现(给类成员变量赋值){    Hour = a;    Minute = b;    Scend = c;    cout<<"对象创建成功,自动调用构造函数!!"<<'\n'<<endl;};/*void Clock::showtime()                 //成员函数的定义和具体功能实现(可以在类里面直接定义){        cout<<"调用成员函数"<<'\n'<<Hour<<'\n'<<Minute<<'\n'<<Scend<<'\n'<<endl;}*/Clock::~Clock(void)                    //析构函数具体功能(提示删除成功)实现{    cout<<"删除对象成功,自动调用析构函数!!"<<'\n';       //结尾的'\n'可以代替endl};void main(){    Clock *p = new Clock(10,20,30);         //动态生成对象,并传参,此时系统自动执行构造函数    p -> showtime();                        //调用成员函数(->是指针的指向运算符)    delete p;                               //删除生成对象,此时系统自动执行析构函数    getchar();  }/*打印结果:对象创建成功,自动调用构造函数!!"调用成员函数"102030删除对象成功,自动调用析构函数!!*/

this->只能在非静态成员函数的内部引用。

0 0