zoukankan      html  css  js  c++  java
  • Output of C++ Program | Set 12

      Predict the output of following C++ programs.

    Question 1

     1 #include <iostream>
     2 using namespace std;
     3 
     4 int fun(int a, int b  = 1, int c =2)
     5 {
     6     return (a + b + c);
     7 }
     8 
     9 int main()
    10 {
    11     cout << fun(12, ,2);
    12     return 0;
    13 }

      Output: Compiler Error in function call fun(12, ,2)
      With default arguments, we cannot skip an argument in the middle. Once an argument is skipped, all the following arguments must be skipped. The calls fun(12) and fun(12, 2) are valid.

     

    Question 2

     1 #include<iostream>
     2 using namespace std;
     3  
     4 /* local variable is same as a member's name */
     5 class Test
     6 {
     7 private:
     8     int x;
     9 public:
    10     void setX (int x) { Test::x = x; }
    11     void print() { cout << "x = " << x << endl; }
    12 };
    13  
    14 int main()
    15 {
    16     Test obj;
    17     int x = 40;
    18     obj.setX(x);
    19     obj.print();
    20     return 0;
    21 }

      Output:

      x = 40
      Scope resolution operator can always be used to access a class member when it is made hidden by local variables. So the line “Test::x = x” is same as “this->x = x”

     

    Question 3

     1 #include<iostream>
     2 using namespace std;
     3 
     4 class Test 
     5 {
     6 private:
     7     int x;
     8     static int count;
     9 public:
    10     Test(int i = 0) : x(i) 
    11     {
    12     }
    13     Test(const Test& rhs) : x(rhs.x) 
    14     { 
    15         ++count;  
    16     }
    17     static int getCount() 
    18     { 
    19         return count; 
    20     }
    21 };
    22 
    23 int Test::count = 0;
    24 
    25 Test fun() 
    26 {
    27     return Test();
    28 }
    29 
    30 int main()
    31 {
    32     Test a = fun();
    33     cout<< Test::getCount();
    34     return 0;
    35 }

      Output: Compiler Dependent
      The line “Test a = fun()” may or may not call copy constructor. So output may be 0 or 1. If copy elision happens in your compiler, the copy constructor will not be called. If copy elision doesn’t happen, copy constructor will be called. The gcc compiler produced the output as 0.

      

      Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.


      转载请注明:http://www.cnblogs.com/iloveyouforever/

      2013-11-27  16:08:17

  • 相关阅读:
    python入门的120个基础练习
    python日志打印模块
    自动化测试总结
    Http_requests
    安装electron-ssr出现的问题
    豆瓣油猴脚本
    ubuntu 16.04 無法進入tty1-6(未解決)
    如何用firefox chrome chromium看只支持IE浏览器的视频 通过wine 安装IE
    python reverse 和reversed
    python 编码问题
  • 原文地址:https://www.cnblogs.com/iloveyouforever/p/3445942.html
Copyright © 2011-2022 走看看