C++类的六个重要函数

来源:互联网 发布:吾知子之所以距我的之 编辑:程序博客网 时间:2024/05/17 21:58
/*C++类的六个重要函数:
1、构造函数
(1)类型转换


2、拷贝构造函数
(1)用类对象初始化
(2)函数调用时的形参为 类对象
(3)函数返回的时候为类对象


3、赋值函数
(1)用类对象赋值


4、析构函数


5、普通对象的取地址符重载


6、const对象的取地址符重载

*/

#include <iostream>using namespace std;class Test{public:/*构造函数  无显式定义调用默认的*/explicit Test(int d = 0)/*必须显式调用*/{cout << "进入默认构造函数:" << this <<endl;data = d;}/*拷贝构造函数 无显式定义调用默认的*/Test(const Test& t){cout << "进入拷贝构造函数:" << this <<endl;data = t.data;}/*赋值函数  无显式定义调用默认的*/Test& operator=(const Test &t){cout << "进入赋值函数:" << this <<endl;if (this != &t){data = t.data;}return *this;}/*1、两个默认的运算符重载之一 普通对象的取地址*/Test* operator&(){cout << "进入地址符的重载:" << this <<endl;return this;}/*2、两个默认的运算符重载之二 const对象的取地址*/const Test* operator&()const{cout << "进入const地址符的重载:" << this <<endl;return this;}~Test(){cout << "进入析构函数:" << this <<endl;}int getdata() {return data;}private:int data;};Test func(Test &t){int Value;Value = t.getdata();return Test(Value);//临时对象,若是对象初始化则直接认为此临时对象就是新创建的对象}int main(){Test t;int i = 0;// cout << "t.data = " << t.getdata() << endl;// // t = (Test)100;/*先调用构造函数转为 类类型 然后再调用赋值函数对对象赋值*/// // Test t2=t;/*用类对象初始化,调用拷贝构造函数*/// Test t3;// // t3 = t2 = t;/*类对象赋值,调用对象赋值函数*/// // cout << "t2.data = " << t2.getdata() << endl;Test t1(100);const Test t2 = t1;Test *p = &t1;const Test *pt = &t2;cout << p->getdata() << endl;return 0;}


1 0
原创粉丝点击