main.cpp
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Student *s = new Student();
s->setValues(12, "James");
s->print();
Student s2;
s2 = *s;
qDebug()<<"----";
s2.print();
Student s3(*s);
qDebug()<<"----";
s3.print();
return a.exec();
}
Student.cpp
#ifndef STUDENT_H
#define STUDENT_H
#include <string>
#include <QDebug>
using namespace std;
class Student
{
public:
//C++ 的类有四类特殊成员函数,它们分别是:默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符
Student() = default; //默认构造函数
~Student() = default; //析构函数
Student(const Student&) = default; //拷贝构造函数
Student& operator = (const Student&) = default; //拷贝赋值运算符
Student(int id, string name);
void setValues(int id, string name);
void print(){qDebug()<<QString::asprintf("id:%d, name:%s", m_id, m_name.c_str());}
private:
int m_id;
string m_name;
};
#endif // STUDENT_H
#include "student.h"
Student::Student(int id, string name)
{
m_id = id;
m_name = name;
}
void Student::setValues(int id, string name)
{
m_id = id;
m_name = name;
}