Pouvez-vous me aider est là définition dans la norme C++ qui décrit que l'on sera appelé constructeur ou opérateur d'affectation dans ce cas:opérateur Constructeur ou cession
#include <iostream>
using namespace std;
class CTest
{
public:
CTest() : m_nTest(0)
{
cout << "Default constructor" << endl;
}
CTest(int a) : m_nTest(a)
{
cout << "Int constructor" << endl;
}
CTest(const CTest& obj)
{
m_nTest = obj.m_nTest;
cout << "Copy constructor" << endl;
}
CTest& operator=(int rhs)
{
m_nTest = rhs;
cout << "Assignment" << endl;
return *this;
}
protected:
int m_nTest;
};
int _tmain(int argc, _TCHAR* argv[])
{
CTest b = 5;
return 0;
}
Ou est-ce juste une question d'optimisation du compilateur?
Peut-il y avoir une différence entre "CTest b (5)" et "CTest b = 5" selon le compilateur? –
Non, la première syntaxe est la syntaxe générale C++ pour créer une instance d'une classe et fournir des arguments au constructeur. La deuxième syntaxe est juste une formulation alternative que vous pouvez utiliser si le constructeur prend exactement un argument. Il existe pour que le code C compile sans modification. – eemz
@joefis pourquoi vous donnez-vous une réponse juste comme un commentaire? Pouvez-vous donner quelques preuves de ce que vous avez dit? –