类常用函数
回顾一下C++常用函数知识点,先构建一个简单的类作为示例:
class T {
public:
T() {
num_ = 0;
std::cout << "Constructor" << std::endl;
}
T(int num) : num_(num){
std::cout << "Constructor" << std::endl;
}
T(const T& src) : num_(src.num_) {
std::cout << "Copy constructor" << std::endl;
}
T& operator=(T& src) {
num_ = src.num_;
std::cout << "Copy assignment operator" << std::endl;
return *this;
}
T(const T&& src) : num_(src.num_) {
std::cout << "Move constructor" << std::endl;
}
T& operator=(T&& src) {
num_ = src.num_;
std::cout << "Move assignment operator" << std::endl;
return *this;
}
int num_;
};
测试哪些情况在调用哪些函数
T Func(const T& srcA) {
return srcA;
}
int main() {
// Constructor
T t1;
// Constructor
T t2(10);
// Copy constructor
T t3 = t2;
// Copy constructor
T t4(t2);
// Copy constructor
T t5 = Func(t4);
// Copy assignment operator
t3 = t1;
// Move constructor
T t6 = std::move(t2);
// Move assignment operator
t4 = std::move(t3);
return 0;
}
详细定义和说明,建议参考微软文档