首页 > 代码库 > C++基础知识面试精选100题系列(21-30)[C++ basics]
C++基础知识面试精选100题系列(21-30)[C++ basics]
【本文链接】
http://www.cnblogs.com/hellogiser/p/100-interview-questions-of-cplusplus-basics-21-30.html
【题目21】
运行下面的代码,输出结果?
【代码】
C++ Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | /* version: 1.0 author: hellogiser blog: http://www.cnblogs.com/hellogiser date: 2014/9/22 */ #include "stdafx.h" #include <iostream> using namespace std; class A { public: virtual void Fun(int number = 10) { std::cout << "A::Fun with number " << number << endl; } }; class B: public A { public: virtual void Fun(int number = 20) { std::cout << "B::Fun with number " << number << endl; } }; int main() { B b; A &a = b; a.Fun(); return 0; //虚函数动态绑定:B,缺省实参是编译时确定的。。。为10 } /* B::Fun with number 10 */ |
【分析】
虚函数动态绑定,但是缺省实参是编译时确定的,所以结果为B::Fun with number 10
【题目22】
指出下面的程序有哪些错误,并改正。
【代码】
C++ Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <iostream> using namespace std; class A { public: A(); ~A(); int i = 0; // ERROR static int j = 0; // ERROR const int k = 0; // ERROR const static char *p = "Hello world"; // ERROR static void fun(); }; A::A() { } A::~A() { } static void fun() // ERROR { } |
【正确代码】
C++ Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | /* version: 1.0 author: hellogiser blog: http://www.cnblogs.com/hellogiser date: 2014/9/22 */ #include "stdafx.h" #include <iostream> using namespace std; class A { public: A(); ~A(); int i ; // error static int j ; // error const int k ; // error const static char *p; // error static void fun(); }; int A::j = 0; const char *A::p = "hello world"; A::A(): i(0), k(0) { } A::~A() { } void A::fun() { } int main() { return 0; } |
【题目23】
C++基础知识面试精选100题系列(21-30)[C++ basics]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。