abstract class (μΆμ ν΄λμ€)
νλ μ΄μμ μμ κ°μ ν¨μλ₯Ό ν¬ν¨νκ³ μλ ν΄λμ€λ₯Ό μΆμ ν΄λμ€λΌκ³ λΆλ₯Έλ€.
class Test
{
private:
public:
virtual void sound() = 0; // μμκ°μν¨μ
};
class Test
{
private:
public:
virtual void sound() = 0;
};
class Copy : public Test
{
public:
virtual void sound() {
std::cout << "Hello";
}
};
int main(void)
{
Copy copy;
copy.sound(); // output : "Hello"
return (0);
};
μμ κ°μ΄ Test ν΄λμ€λ₯Ό Copy ν΄λμ€κ° μμλ°μ κ²½μ°μλ Testν΄λμ€μμ μλ μμκ°μν¨μμΈ sound()λ₯Ό
μ μΈ ν΄μ€μΌνλ€.
μ μΈμ ν΄μ£Όμ§μμ κ²½μ°
unimplemented pure virtual method 'sound' in 'TestTwo’
κ°μν¨μλ₯Ό λ§λ€μ΄λκ³ μμλ°μ μμ ν΄λμ€μμ λ°λ‘ μ μΈμ ν΄μ£Όμ§μκ²λλ©΄ ν΄λΉ ν¨μλ₯Ό μ°Ύμ μ μλ€κ³ νλ©° μ€λ₯κ° λ°μλλ€.
μΆμν΄λμ€ μ¬μ©μ©λ
μΆμν΄λμ€μ κ²½μ°μλ μ΄λ¦μμ 보μ΄λ€μνΌ κ΅¬νμ΄ μλ²½νμ§ μμ λ λ¨μ μΌλ‘ μ¬μ©μ΄ λΆκ°λ₯νκ³ νμν΄λμ€μ μ€κ³ λλ κ°μ΄λλΌμΈμ μ£Όλ μν λ§ νλ ν΄λμ€λ‘ μ¬μ©λλ€.
class Test
{
private:
public:
virtual void sound() = 0;
};
int main(void)
{
Test test; // error
return (0);
}
μμ κ°μ΄ μ μΈμ ν΄μ μ¬μ©μ ν λ €κ³ νλ©΄ μΆμν΄λμ€λΌ λΆκ°λ₯νλ€λ λ¬Έκ΅¬κ° λμ¨λ€.
'42seoul > projects' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++] Repetition and Exceptions (0) | 2024.03.13 |
---|---|
[C++] interfaces ( μΈν°νμ΄μ€ ) (0) | 2023.09.13 |
[C++] μλΈ νμ λ€νμ±(Subtype Polymorphism) (0) | 2023.09.13 |
[CPP Module] 04 (0) | 2023.09.13 |
[C++] endl κ³Ό β\nβ μ°¨μ΄μ (0) | 2023.09.02 |