C++/Class
2021. 3. 21. 23:47
인터페이스 클래스 (Interface Class)
순수 가상 함수를 이용하여 만드는 클래스
특별한 기능을 하지는 않고 자식 클래스들을 편하게 다루기 위해 사용한다.
예제
#include <iostream>
class IErrorLog
{
public:
virtual ~IErrorLog() {}
virtual bool reportError(const char* errorMessage) = 0;
};
class FileErrorLog : public IErrorLog
{
public:
bool reportError(const char* errorMessage) override
{
std::cout << "Writing error to a file\n";
return true;
}
};
class ConsoleErrorLog : public IErrorLog
{
public:
bool reportError(const char* errorMessage) override
{
std::cout << "Printing error to a console\n";
return true;
}
};
void doSomething(IErrorLog& log)
{
log.reportError("Runtime error!!");
}
int main()
{
FileErrorLog file_log;
ConsoleErrorLog console_log;
doSomething(file_log);
doSomething(console_log);
}
/* stdout
Writing error to a file
Printing error to a console
*/
'C++ > Class' 카테고리의 다른 글
C++ 객체 잘림 (Object Slicing) (0) | 2021.03.21 |
---|---|
C++ 다이아몬드 상속 (Diamond Polymorphism) (0) | 2021.03.21 |
C++ 추상 기본 클래스 (Abstract class) (0) | 2021.03.21 |
C++ 순수 가상 함수 (Pure Virtual Function) (0) | 2021.03.21 |
C++ 가상 (함수) 테이블 (Virtual Tables) (0) | 2021.03.20 |