读几个小程序了解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;
}
#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;
}
相关文章推荐
- 走进C++程序世界-------类的定义和使用(数据成员和方法成员,析构函数,构造函数,内联实现)
- 走进C++程序世界-------类的定义和使用(数据成员和方法成员,析构函数,构造函数,内联实现)
- C++语言特性:构造函数,析构函数,虚函数,内联函数,静态成员函数,重载,覆盖,隐藏
- 每日一个C++小程序(十二)--具有静态数据、函数成员的Point类,多文件组织
- 类与对象(构造函数,析构函数,静态数据成员)。。。2014.5.19
- 读几个小程序了解c++:Part 03(派生类和继承)
- C++的静态成员函数,成员变量,构造函数,析构函数,拷贝构造函数
- C++基础4:构造函数、析构函数、拷贝构造函数、静态成员函数
- C++学习5-面向对象编程基础(构造函数、转换构造、静态数据成员、静态成员函数、友元)
- 计算机程序设计(C++)第10周编程作业数据的抽象和封装——类(2)——构造函数、析构函数和指向对象的指针
- 读几个小程序了解c++:Part 02(友元、常类型)
- 【C++】类的静态常量数据成员! static const
- 总结笔记-c++成员变量、构造函数以及析构函数的执行顺序
- 对C++中的类的静态数据成员和静态函数成员的认识
- C++文本查询程序 定义类管理数据 用智能指针 C++Primer练习12.30
- C++文本查询程序 定义类管理数据 用引用共享数据 不用智能指针 C++Primer练习12.27
- C++ 静态数据成员与静态成员函数
- C++静态成员(静态数据成员和静态成员函数)
- C++关于this指针、静态变量和静态成员函数
- C/C++杂记:深入理解数据成员指针、函数成员指针