我在文件中有以下类myclass.hpp
:
#ifndef MYCLASS_HPP
#define MYCLASS_HPP
#include <cstdlib>
#include <iostream>
template <std::size_t l, typename T>
class MyClass {
public:
MyClass();
MyClass(const MyClass<l,T>& other);
};
#include "myclass.tpp"
#endif
和伪实现文件myclass.tpp
:
template <std::size_t l, typename T>
MyClass<l,T>::MyCLass() {
std::cout << "Ctor" << std::endl;
}
template <std::size_t l, typename T>
MyClass<l,T>::MyCLass(const MyCLass<l,T>& other) {
std::cout << "COPY Ctor" << std::endl;
}
在我的主文件中,我有:
#include "myclass.hpp"
int main(int argc, char** argv) {
MyCLass<10,int> m1;
MyClass<10,int> m2;
m1 = m2; // <-- HERE
}
不调用复制构造函数。打印输出如下:
克托尔
克托尔
我究竟做错了什么?谢谢