题目摘录-编程语言(C++)(四)

这篇博客汇总了C++编程的45个问题,涵盖了从基础到进阶的各种知识点,帮助读者深入理解C++语言。
摘要由CSDN通过智能技术生成
Q 31 :
题目:
    分析一下这段程序的输出:
    #include<iostream>
    using namespace std;
    class B{
    public:
        B(){
            cout << "default constructor" << " ";
        }
        ~B(){
            cout << "destructed" << " ";
        }
        B(int i):data(i){
            cout << "constructed by parameter" << data << " ";
        }
    private:
        int data;
    };
    B Play(B b){
        return b;
    }
    int main(int argc, char *argv[]){
        B temp = Play(5);
        return 0;
    }

答案:
    constructed by parameter5
    destructed
    destructed

解答:
    考察赋值运算顺序以及拷贝构造函数。
    1. B temp = Play(5)从右向左执行。
    2. 先将"5"转为形式参数B的类型,之后调用B(int i)打印
"constructed by parameter"。
    4. B temp调用B的默认浅拷贝构造函数,完成赋值,由于拷贝构
造函数没有输出,所以没有打印东西。
    6. Play()生命周期结束后,b析构打印"destructed"。
    7. main()生命周期结束后,temp析构打印"destructed"。
Q 32 :
题目:
    int i=10, j=10, k=3;
    k*=i+j;
    k最后的值是?

答案:
    60

解答:
    考察运算符优先级。
    1. +优先级高于*=,等价于k = k * (i +j)。
Q 33 :
题目:
    #include命令的功能是:

答案:
    在命令处插入一个文本文件

解答:
    1. "#include"在命令处插入,插入文本过程为预处理过程。
Q 34 :
题目:
    有一个类A,其数据成员如下:
    class A {
    private:
        int a;
    public:
        const int b;
        float* &c;
        static const char* d;
        static double* e;
    };
    则构造函数中,成员变量一定要通过初始化列表来初始化的是:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值