您的位置:首页 > 编程语言 > C语言/C++

读几个小程序了解c++:Part 01(构造函数、析构函数、指针、静态数据成员)

2018-02-27 18:23 447 查看
以前学c++的时候光打酱油了,现在抽出几天时间把c++系统复习一下,每天敲一个小程序记录下自己学习的东西。#include <cstdio>
#include <climits>
#include <algorithm>
#include <cstring>
#include <iostream>
using namespace std;

class Test{
private: //私有成员:仅能被此类访问
int s,t;
static int cnt; ///静态数据成员:无论建立多少个类对象,都只有一个静态数据成员

public: //公有成员:可以被任意访问
Test(int x, int y){ ///构造函数:对函数私有成员进行初始化
s=x, t=y;
cnt++; //测试stctic功能时使用01
cout<<"Constructor called."<<endl;
}
Test(){ ///构造函数重载:可以有多个重载
s=12, t=13;
cnt++; //测试stctic功能时使用02
}
Test(const Test &p){///拷贝构造函数:用一个对象初始化另一个对象时才会被调用
s=p.s*2, t=p.t*2;
cnt++; //测试stctic功能时使用03
}
~Test(){ ///析构函数:清理任务
cout<<"Destructor called."<<endl;
}
int add(){ ///生成成员函数方法一:直接编辑
return (s+t);
}
int add(int x){ ///函数的重载
return (s+t+x);
}
int minus_(); ///生成成员函数方法二:在类内声明成员函数,在类外编辑
void show(){
cout<<cnt<<endl;
}
};
int Test::minus_(){ ///在类外定义成员函数
return (s-t);
}
void fuction01(){ ///构造函数‘析构函数、指针
Test A(1, 3);
cout<<A.add()<<endl<<A.minus_()<<endl;
cout<<A.add()<<endl<<A.add(2)<<endl<<endl;
Test *p; ///定义指针型变量
p=&A; ///将变量地址指向A
cout<<(*p).add()<<endl<<(*p).minus_()<<endl;
}
void fuction02(){ ///拷贝构造函数
Test A(1, 4), D, E(27, 4); //调用构造函数Test(int x, int y)()
Test C=A; //调用构造函数Test()
Test B(A); //调用拷贝构造函数Test(const Test &p)()
cout<<B.add()<<endl<<B.minus_()<<endl;

E.show();
}
int Test::cnt=0;
int main(){
///fuction01();
fuction02();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐