SW개발/C++
C++ delete
Caniro
2021. 3. 15. 23:31
반응형
delete
함수를 사용하지 못하도록 막는 역할을 하는 키워드이다.
#include <iostream> #include <cassert> class Fraction { int numerator_; int denominator_; public: Fraction(char) = delete; explicit Fraction(int num = 0, int den = 1) : numerator_(num), denominator_(den) { std::cout << "Default constructor" << std::endl; assert(den != 0); } Fraction(const Fraction& fraction) : numerator_(fraction.numerator_), denominator_(fraction.denominator_) { std::cout << "Copy constructor called" << std::endl; } friend std::ostream& operator << (std::ostream& out, const Fraction& f) { out << f.numerator_ << " / " << f.denominator_; return (out); } }; void doSomething(Fraction frac) { std::cout << frac << std::endl; } int main() { using namespace std; Fraction frac('c'); // 에러 }
빌드하면 아래와 같은 에러가 발생한다.
error C2280: 'Fraction::Fraction(char)': attempting to reference a deleted function
반응형