Sono diversi solo per la diagnostica prodotta. Se si rendono private
, viene segnalato una violazione di accesso ulteriore e superfluo:
class A
{
public:
A() = default;
private:
A(const A&) = delete;
};
int main()
{
A a;
A a2=a;
}
risultati nel seguente ulteriore uscita dal GCC 4.8:
main.cpp: In function 'int main()':
main.cpp:6:5: error: 'A::A(const A&)' is private
A(const A&) = delete;
^
main.cpp:12:10: error: within this context
A a2=a;
^
metodi da qui la mia raccomandazione di rendere sempre cancellato public
.
fonte
2013-09-21 09:46:04
Rendo pubbliche le mie funzioni eliminate, perché è ** un annuncio ** per gli utenti pubblici che non può essere costruito come predefinito (nel tuo caso). – Nawaz