Do you link VssApi.lib to your executable? (the documentation states, that CVssWriter is defined there).
–
StephanJul 8 '11 at 14:29

ya i have linked that but the problem is that CVsswriter is an abstract base class and when i inherit it by overriding all virtual and pure virtual functions,and then when i make an object of this derived class and try to access the public member function Initialize of CVSSWriter it gives a link error if i use it directly it gives me cannot instantiate abstract class.
–
kunalJul 9 '11 at 7:47

1 Answer
1

An abstract class is not instantiable, and in most cases they are used to define interfaces that are later implemented in other classes. When you say that you want to call functions of the abstract class you are probably wanting to call those functions on a concrete type that inherits from that abstract class.

As an example, consider that you had a GeometricFigure abstract class that provided an area virtual function. You do not want to obtain the area of an abstract figure, but rather the area of a concrete figure (say a Triangle). The abstract class provides you with a way of referring to different figures in an uniform way and calling the methods on those objects, but you are not calling the methods on an abstract figure, you are calling the methods in a concrete object.