I devrait initialiser l'objet de B ici, mais je me suis déclaration de fonction:déclaration de fonction au lieu de constructeur invoquer en C++
#include <iostream>
using namespace std;
class A {};
class B {
public:
B(const A&) {
cout << "B: conversion constructor\n";
}
};
int main()
{
B b(A()); //function declaration: B b(A(*)());
b.test();
}
La sortie est: demande de membre « test » dans « b », qui est de type non-classe 'B (A ( *)())' *
Pourquoi le constructeur n'est-il pas invoqué dans cette situation?
Regardez l'analyse syntaxique le plus contrariant. – chris
http://en.wikipedia.org/wiki/Most_vexing_parse – RichieHindle
Super, merci. –