shendaowu
申祷无
2016-05-20 00:20
采纳率: 73.2%
浏览 1.4k

“使用拷贝初始化时,只能提供一个初始值”是什么意思?

《C++ Primer》第五版,中文版。88 页。
提供两个初始值是什么样的?
when we use the copy initialization form (i.e., when we use =) (§ 3.2.1, p. 84), we can supply only a single initializer;

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • wobushinidegj
    七哲 2016-05-20 00:25
    已采纳

    你不可能用两个值来初始化对象吧

    点赞 评论
  • qq423399099
    小灸舞 2016-05-20 04:43

    这句话的意思是当你是用拷贝初始化的时候,只能单个初始化

    A aa("1");
    A arr[3] = {"2", "3". "4"}; //多个初始化
    A bb = aa; //调用拷贝构造,只能单个初始化
    
    点赞 评论
  • VisualEleven
    Eleven 2016-05-20 08:49

    定义一个对象的时候,用另外一个同类型对象去初始化它,该类的拷贝构造函数被调用~

    点赞 评论
  • yangguanghaoshaonian
    du2ang 2019-04-29 14:43

    可以参考书中提到的前文 § 3.2.1, p. 84,这里对应的提供两个初始值的情况应该是:

    vector<int> v1(2, 3);  // 直接初始化,v1 包含2 个 3
    

    vector<int> v2 = {1, 2, 3};应该是列表初始化,也属于拷贝初始化。

    点赞 评论

相关推荐