我看起来很安静,但我觉得很难找到这个问题的答案*我认为有更多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匿名引用构造函数”会产生许多但几乎无关的答案。 **)我正在做嵌入式的东西......