这有什么区别:
Myclass *object = new Myclass();
Run Code Online (Sandbox Code Playgroud)
和
Myclass object = new Myclass();
Run Code Online (Sandbox Code Playgroud)
我已经看到很多C++库如wxWidgets,OGRE等使用第一种方法......为什么?
所以基本上这段代码:
class A {
};
class B {
B (const B& b) {}
public:
B (){}
B (const A& a) {}
};
int main()
{
A a;
B b1(a); //OK
B b2 = a; //Error
}
Run Code Online (Sandbox Code Playgroud)
只生成一个错误B b2 = a.那个错误是
错误:'B :: B(const B&)'是私有的
除了直接转换构造函数之外,为什么还要尝试调用复制构造函数?
从错误消息中可以清楚地看到B创建了一个临时文件然后用于复制构造,但为什么呢?这个标准在哪里?
可能重复:
C++对象实例化与分配
我对C++很陌生,并想知道实例化对象之间的区别(如果有的话)
int main () {
vector< int > x(2);
}
Run Code Online (Sandbox Code Playgroud)
要么
int main () {
vector< int > x = vector< int > (2);
}
Run Code Online (Sandbox Code Playgroud)
除了后者需要更长的时间来写.提前致谢!