C++学习之构造函数和析构函数

 1 /*
 2
 3
 4   实验启示1:构造子类对象时,先调用父类构造函数,后调用子类构造函数
 5   实验启示2:析构子类对象时,先调用子类析构函数,后调用父类析构函数
 6   实验启示3:在这个对象生命周期结束时,析构函数会自动调用
 7
 8
 9  */
10
11 #include<iostream>
12
13 int flag;
14
15 class Animal
16 {
17
18 public:
19
20     int weight;
21     int length;
22     double hungry_rate;
23
24     Animal(void);
25     ~Animal(){flag++;std::cout<<flag<<". I‘m ~Animal(),now."<<std::endl;}
26
27     void eat(void);
28
29 };
30
31 Animal::Animal()
32 {
33     flag++;
34
35     std::cout<<flag<<". I‘m Animal,now."<<std::endl;
36
37     weight=25;
38     Animal::length=10;
39     Animal::hungry_rate=70;
40
41 }
42
43 void Animal::eat(void)
44 {
45
46     std::cout<<"The Animal is eating"<<std::endl;
47
48 }
49
50 class Fish:public Animal
51 {
52
53 public:
54
55     Fish(){ flag++;std::cout<<flag<<". I‘m Fish,now."<<std::endl;}
56     ~Fish(){flag++;std::cout<<flag<<". I‘m ~Fish(),now."<<std::endl;}
57
58     void swim()
59     {
60
61         std::cout<<"The Fish Is Swimming!"<<std::endl;
62
63     }
64 };
65
66 int main()
67 {
68
69     Fish x;
70
71     x.eat();
72
73     std::cout<<x.hungry_rate;
74
75     x.swim();
76
77     return 0;
78 }

运行结果:

时间: 2024-08-28 14:50:30

C++学习之构造函数和析构函数的相关文章

学习C++ -&gt; 构造函数与析构函数

学习C++ -> 构造函数与析构函数 一.构造函数的介绍    1. 构造函数的作用        构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建对象时, 对象会自动调用它的构造函数.一般来说, 构造函数有以下三个方面的作用:            ■ 给创建的对象建立一个标识符;            ■ 为对象数据成员开辟内存空间;            ■ 完成对象数据成员的初始化.            2. 默认构造函数        当用户没有显式的去定义构造

鸡啄米:C++编程之十四学习之构造函数和析构函数

1. 本人学习鸡啄米课程的笔记记录,用来记录学习的历程和进度 2. 构造函数 我们在声明一个变量时,如果对它进行了初始化,那么在为此变量分配内存空间时还会向内存单元中写入变量的初始化.声明对象有相似的过程,程序执行时遇到对象声明语句时会向操作系统申请一定的内存空间来存放这个对象,但是它能像一般变量那样初始化时写入指定的初始值吗?类的对象太复杂了,要实现这一点不太容易,这就需要构造函数来实现. 构造函数的作用就是在对象被创建时利用特定的初始值构造对象,把对象置于某一个初始状态,它在对象被创建的时候

c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)

现在来测试一下在多重继承,虚继承,MI继承中虚继承中构造函数的调用情况. 先来测试一些普通的多重继承.其实这个是显而易见的. 测试代码: //测试多重继承中派生类的构造函数的调用顺序何时调用 //Fedora20 gcc version=4.8.2 #include <iostream> using namespace std; class base { public: base() { cout<<"base created!"<<endl; }

C++学习之类的构造函数、析构函数

在C++的类中,都会有一个或多个构造函数.一个析构函数.一个赋值运算操作符.即使我们自己定义的类中,没有显示定义它们,编译器也会声明一个默认构造函数.一个析构函数和一个赋值运算操作符.例如: 1 //声明一个空类 2 class Empty{}; 3 4 //但是这个空类和下面这个类是等同的 5 class Empty 6 { 7 Empty(){.....}; //默认构造函数 8 Empty( const Empty & rhs ){......} //复制构造函数 9 ~Empty(){.

《C++ Primer Plus》10.3 类的构造函数和析构函数 学习笔记

10.3.1 声明和定义构造函数构造函数原型:// constructor prototype with some default argumentsStock(const string &co, long n = 0, double pr = 0.0);构造函数定义:// constructor definitionStock::Stock(const string & co, long n, double pr){    company = co;    if (n < 0)  

构造函数与析构函数(其中有两点值得学习)

// 构造函数与析构函数.cpp : 定义控制台应用程序的入口点.//要学习的两点://要想表现出析构函数,必须在对象外面加大括号!!//  while (cin.get() != '\n')   num++;#include "stdafx.h"#include<iostream>using namespace std;class Count{public:    Count();    ~Count();    void process();private:    in

C++ Primer 学习笔记_18_类与数据抽象(4)_构造函数、析构函数、explicit关键字、赋值与初始化、类成员的显式初始化

引言: 构造函数确保每个对象在创建时自动调用,以确保每个对象的数据成员都有合适的初始值. 一.构造函数.默认构造函数 1.构造函数 --构造函数是特殊的成员函数 --构造函数是为了保证对象的每个数据成员都被正确初始化 --函数名和类名完全相同 --不能定义构造函数的类型(返回类型),也不能使用void --通常情况下构造函数应声明为公有函数,一般被隐式地调用. --构造函数被声明为私有有特殊的用途,比如单例模式. (1).构造函数可以被重载 一般而言,不同的构造函数允许用户指定不同的方式来初始化

C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针

 目  录 1       开始学习C++.............................................................................................................. 4 1.1       C++的头文件.................................................................................................

构造函数与析构函数2

// 构造函数与析构函数2.cpp : 定义控制台应用程序的入口点.//学习动态内存单元的申请 #include "stdafx.h"#include<iostream>using namespace std;class Student{public:    Student();    Student(int pid, char*pname, float s);    void modify(float s);    void display();    ~Student(