【问题标题】:C++ Why can't write this constructor? [duplicate]C++ 为什么不能写这个构造函数? [复制]
【发布时间】:2018-01-29 09:14:55
【问题描述】:

我想问这个问题... 为什么我们不能使用相机 c1(20); ???

这是在上课。 但是我们在Camera c1(20)中发现了错误;

请告诉我...

#include <iostream>

class Camera{
private:
public:
    Camera(){

    }
    Camera(int x){

    }
};

class Phone{
private:
    Camera c1(20);
public:

};

int main(){

}

【问题讨论】:

  • 为了避免一般的解析问题,您可以使用Camera c1{20};Camera c1 = Camera(20);
  • 请发布错误信息
  • 不同意重复,因为在这个问题中,初始化是用常量值请求的,而不是(不明确的)标识符。虽然答案可能几乎相同,但问题对我来说却不同。
  • @Jean-BaptisteYunès 问题是() 中的任何表达式,编译器如何抱怨生成的格式错误的程序是实现定义的。
  • @caleth 我终于同意了,这是语法而不是语义。

标签: c++ constructor


【解决方案1】:

为了避免一般的解析问题(查看最令人烦恼的解析),

您可以使用Camera c1{20};Camera c1 = Camera(20);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 2013-10-01
    • 2013-04-25
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    相关资源
    最近更新 更多