构造函数中的非const匿名引用

时间:2017-01-23 16:44:46

标签: c++ constructor reference anonymous

我看起来很安静,但我觉得很难找到这个问题的答案*我认为有更多c ++经验的人发现非常明显。

考虑这个课程:

class A {
    public:
        A( const char * name ){}
};

class X {
    public:
        X( A const&a ) {}
};

class Y {
    public:
        Y( A &a ) {}
};

这段代码:

A a( "1" );
X x1( a ); // Works

X x2( A( "2" ) ); // Works

Y y3( A( "3" ) ); // Error!

那么为什么我可以通过非const引用将对象传递给构造函数而不是匿名引用?

还有另一种方法来写这样的东西来在堆上构建这些对象吗?

Car car( Person( "Mike" ), Person( "Sandra" ) );

提前致谢!

*)很难,因为搜索“const匿名引用构造函数”会产生许多但几乎无关的答案。 **)我正在做嵌入式的东西......

0 个答案:

没有答案