<dfn id='vGApI1WQ'></dfn>

        <noscript id='vGApI1WQ'></noscript>

      1. 频道栏目
        首页 > 程序开发 > 软件开发 > C++ > 正文
        C++编程之引用和拷贝构造函数、按值传递和返回、位拷贝与初始化等实例
        2019-02-19 13:51:58         来源:eyetired的博客  
        收藏   我要投稿

        对于传递和返回大的简单结构有了可使用的方法

        一个类在任何时候都知道她存在多少个对象

        //: C11:HowMany.cpp
        // From Thinking in C++, 2nd Edition
        // Available at //www.BruceEckel.com
        // (c) Bruce Eckel 2000
        // Copyright notice in Copyright.txt
        // A class that counts its objects
        #include 
        #include 
        using namespace std;
        ofstream out("HowMany.out");
        
        class HowMany {
         static int objectCount;
        public:
         HowMany() { objectCount++; }
         static void print(const string& msg = "") {
          if(msg.size() != 0) out << msg << ": ";
          out << "objectCount = "
            << objectCount << endl;
         }
         ~HowMany() {
          objectCount--;
          print("~HowMany()");
         }
        };
        
        int HowMany::objectCount = 0;
        
        // Pass and return BY VALUE:
        HowMany f(HowMany x) {
         x.print("x argument inside f()");
         return x;
        }
        
        int main() {
         HowMany h;
         HowMany::print("after construction of h");
         HowMany h2 = f(h);
         HowMany::print("after call to f()");
        } ///:~

        HowMany类包括一个静态变量int objectCount和一个用于报告这个变量的

        静态成员函数print(),这个函数有一个可选择的消息参数

        输出不是我们期望的那样

        after construction of h: objectCount = 1

        x argument inside f(): objectCount = 1

        ~HowMany(): objectCount = 0

        after call to f(): objectCount = 0

        ~HowMany(): objectCount = -1

        ~HowMany(): objectCount = -2

        在h生成以后,对象数是1,这是对的

        原来的对象h存在函数框架之外,同时在函数体内又增加了一个对象,这个对象

        是通过传值方式传入的对象的拷贝

        在对f()的调用的最后,当局部对象出了其范围时,析构函数就被调用,析构

        函数使objectCount减小

        点击复制链接 与好友分享!回本站首页
        上一篇:关于C++多态的基础知识讲解
        下一篇:C++的单例模式的几种实现方式解析
        相关文章
        图文推荐
        点击排行

        关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

        版权所有: 第一门户--致力于做实用的IT技术学习网站