取名字好难-_- 2022-04-16 10:20 采纳率: 58.3%
浏览 336

C++构造函数不会的问题

假设A 是一个类的名字,下面哪段程序不会调用A的复制构造函数?

A.A a1,a2; a1 = a2;
B.void func( A a) { cout << "good" << endl; }
C.A func( ) { A tmp; return tmp; }
D.A a1; A a2(a1);

D哪错了啊?
书上是这么写的:

img

现有类的定义如下:

class MyClass {
public:
    MyClass(int x): val(x) {}
    void Print() const {cout << "const:val=" << val << '\t';}
    void Print() {cout << "val=" << val << '\t';}
private:
    int val;
};

在main函数中定义该类的l两个对象:const MyClass obj1(10); MyClass obj2(20);
依次执行obj1.Print(); obj2.Print();的输出结果是()。
A.val=10 const:val=20
B.const:val=10 const:val=20
C.const:val=10 val=20
D.val=10 val=20
为什么选C啊?

  • 写回答

2条回答 默认 最新

  • 对象被抛出 2022-04-16 11:29
    关注

    obj1是常对象, 只能调用常函数, 也就是被const修饰的成员函数(构造函数除外)

    评论

报告相同问题?

问题事件

  • 修改了问题 4月16日
  • 创建了问题 4月16日

悬赏问题

  • ¥15 程序实在不会写,要秃了
  • ¥15 pycharm导入不了自己的包
  • ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
  • ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度