最近看《深度探索C++对象模型》,遇到了一个疑问。
在4种情况下会合成nontrivial构造函数,那其他情况到底是【没有合成构造函数】还是合成了无用的【trivial构造函数】?
虽然这两者的外在表现一样,但内部这个构造函数是否被合成?
P40框内说合成,P47结尾又说没有被合成。
书中还有一句“Default constructor的合成操作只有在constructor真正需要被调用时才会发生”,那么对以下语句是否合成了构造函数?
if(condi) {
A* a = new A;
}else {
B* b = new B;
}