<dl id="opymh"></dl>

<div id="opymh"></div>
      <div id="opymh"><tr id="opymh"></tr></div>

        <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

        <em id="opymh"></em>

        <em id="opymh"><ol id="opymh"></ol></em>

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

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

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

              //: C11:HowMany.cpp
              // From Thinking in C++, 2nd Edition
              // Available at https://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生成?#38498;螅?#23545;象数是1,这是对的

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

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

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

              函数使objectCount减小

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

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

              版权所有: 红黑联盟--致力于做实用的IT技术学习网站

              极速飞艇好假
              <dl id="opymh"></dl>

              <div id="opymh"></div>
                  <div id="opymh"><tr id="opymh"></tr></div>

                    <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

                    <em id="opymh"></em>

                    <em id="opymh"><ol id="opymh"></ol></em>

                          <dl id="opymh"></dl>

                          <div id="opymh"></div>
                              <div id="opymh"><tr id="opymh"></tr></div>

                                <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

                                <em id="opymh"></em>

                                <em id="opymh"><ol id="opymh"></ol></em>

                                      娱乐场所标准 湖北体育彩票新11选5 拖胆投注 一波中特最准网址 江苏7位数最新开奖第18171期 香港赛马会大楼图片 浙江快乐12开奖结果039 玩通比牛牛怎样才会赢 排列三跨度走势图网易 博彩网能2元买的 易算北京赛车pk10北京pk拾 江西快三 四川时时彩开奖结果走势图百度 快乐双彩零五 江苏老快3直播