我想用C++創建一個基本的抽象類,其中的子類都在一個單獨的文件中。我的抽象類看起來像C++中的抽象類和類組織
class Process_Base{
public:
virtual void process() = 0;
}
像這樣的簡單實現應該完全包含在頭文件中嗎?如果這是我需要有一個.cpp文件與它關聯?
當我創建子類時,它們的頭文件應該是什麼樣的?我想.cpp文件的子類應該是這個樣子
#include "Process_Base.h"
class Hello_Process : public Process_Base{
void process(){
printf("%s\n", "Hello, World");
}
}
有人能證實我正確地處理這個,如果不給什麼我應該做一個簡單的例子。
UPDATE
我繼續實行,但現在我得到以下編譯器錯誤
g++ -c -Wall -g Process_Message.cpp
Process_Message.cpp:4: error: expected class-name before ‘{’ token
以下是抽象類的頭
// Abstract header .hpp file
class Process_Base{
public:
virtual void process() = 0;
};
子類頭
// The subclass header .hpp file
#include "Process_Base.hpp"
class Process_Message : public Process_Base {
public:
void process();
};
和實現
// Simple implementation .cpp file
#include <stdio.h>
#include <string.h>
class Process_Message : Process_Base {
public:
void process(){
printf("%s", "Hello");
}
}
我不明白爲什麼我收到錯誤,可有人請解釋。
子類應該聲明在各自的頭文件的任何其他方法等等。如果基類是抽象的,則不需要cpp文件。目前看起來不錯! – Martin
您的基類很可能需要虛擬析構函數。 – juanchopanza
你應該在類的右括號後面放一個分號。就像那樣:class A {}; – tkhomas