有如下程序: #include using namespace std; class TV{ public: Tv(int s=41):size(s){} TV(const TV&r):size(r.size

admin2021-06-10  27

问题 有如下程序:
    #include
    using namespace std;
    class TV{
    public:
    Tv(int s=41):size(s){}
    TV(const TV&r):size(r.size){cout<<’1’;}
    ~Tv(){}
    private:
    int size;
    }  ;
    TV fun(TV&u){TV t=u;return t;}
    int main()t TV x,y;x=fun(y);return 0;}
    此程序运行时输出字符1的个数是(    )。

选项 A、1
B、2
C、3
D、4

答案B

解析 只有调用拷贝构造函数TV(const TV&r)时,才会输出1。运行语句x=fun(y);时,在调用fun函数时,将y传给fun的形参u时调用一次拷贝构造函数,fun()函数体内的一次赋值TV t=u,也调用一次拷贝构造函数,所以输出字符’1’的个数是2,故选B选项。
转载请注明原文地址:https://kaotiyun.com/show/dVfp777K
0

最新回复(0)