#include <iostream>
using namespace std;
class User
{
int id;
std::string name;
public:
User(int userId, std::string userName) : id(userId), name(userName)
{}
// Copy Constructor is deleted
User(const User & obj) = delete;
// Assignment operator is deleted
User & operator = (const User & obj) = delete;
void display()
{
std::cout<<id << " ::: "<<name<<std::endl;
}
};
int main()
{
User userObj(3, "John");
User obj = userObj;
std::cout<<"ID and Name:\t";
userObj.display();
return 0;
}
编译错误:
main.cpp:24:10: error: call to deleted constructor of 'User'
User obj = userObj;
^ ~~~~~~~
main.cpp:12:5: note: 'User' has been explicitly marked deleted here
User(const User & obj) = delete;
^
1 error generated.