类的构造函数析构函数与赋值函数

Posted borter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的构造函数析构函数与赋值函数相关的知识,希望对你有一定的参考价值。

类的构造函数、析构函数与赋值函数

构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易 麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。

每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝 构造函数,其它的称为普通构造函数)。对于任意一个类 A,如果不想编写上述函数, C++编译器将自动为 A 产生四个缺省的函数。

 

 1 #include <iostream>
 2 
 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 4 using namespace std;
 5 int main(int argc, char** argv) {
 6         //定义date结构
 7     struct date
 8     {
 9        int year;
10        int month;
11        int day;
12     };
13 
14     //定义baby结构
15     struct baby {
16         int    num;
17         float   weight;
18         date   birthday;   // date为结构类型 
19     }; 
20     
21     //声明baby结构变量并初始化
22     baby b1={10001,10,{2002,12,25}};
23 
24     //下列是baby结构变量b1的引用。
25     cout<<"b1.num="<<b1.num<<endl;
26     cout<<"b1.weight="<<b1.weight<<endl;
27     cout<<"b1.birthday.year="<<b1.birthday.year<<endl;
28     cout<<"b1.birthday.month="<<b1.birthday.month<<endl;
29     cout<<"b1.birthday.day="<<b1.birthday.day<<endl;
30     cout<<"--------------------------"<<endl;
31 
32     //声明baby结构变量temp,并进行赋值运算
33     baby temp;
34     temp=b1;
35     cout<<"temp.num="<<temp.num<<endl;
36     cout<<"temp.weight="<<temp.weight<<endl;
37     cout<<"temp.birthday.year="<<temp.birthday.year<<endl;
38     cout<<"temp.birthday.month="<<temp.birthday.month<<endl;
39     cout<<"temp.birthday.day="<<temp.birthday.day<<endl;
40     return 0;
41 }

 

以上是关于类的构造函数析构函数与赋值函数的主要内容,如果未能解决你的问题,请参考以下文章

类的Big-Three:构造函数析构函数与赋值函数

C++类与对象(详解构造函数,析构函数,拷贝构造函数,赋值重载函数)

编程题编写String类的构造函数拷贝构造函数析构函数和赋值函数

编程题编写String类的构造函数拷贝构造函数析构函数和赋值函数

虚析构函数

C++类的成员函数:构造析构拷贝构造运算符重载