Pure virtual class
Hej eksperter.Jeg er ved at lave en socket wrapper i c++. Min ide er at jeg har en pure virtual class: mySocket. Idén er at write og read funktionerne skal være pure virtual, dvs. at de skal implementeres i en klasse som arver fra mySocket.
mySocket:
public:
mySocket(int port, int type);
virtual int myWrite(string writeString) = 0;
virtual int myRead(string &readString) = 0;
.
.
.
private:
...
Jeg vil så lave en server og client classe, som begge arver fra mySocket. både client og server klassen skal så implementere write og read funktionerne.
myServer:
class myServer : public mySocket
{
public:
myServer(int port);
int myWrite(string writeString);
int myRead(string readString);
private:
...
};
Impl:
myServer::myServer(int port) : mySocket(port, SERVER)
{...}
myClient laves på samme måde.
I main laves f.eks:
int main(void)
{
myServer server(5000);
}
Jeg får så en fejl som siger:
error: cannot declare variable ‘server' to be of abstract type ‘myServer'
Hvad er det som jeg har misforstået? Eller kan man ikke gøre dette på denne måde?
Mvh Oddi