나는 파일 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
}
복사 생성자가 호출되지 않습니다. 인쇄물은 다음과 같다 :
ctor에
ctor에 내가 잘못 뭐하는 거지
? 고맙습니다
:
당신이 전화하는거야 기능은 서명이 있습니다. '할당 연산자 '를 정의하고 무슨 일이 일어나는 지보십시오. – lapk