What is the equivalent of the following C# code in C++/CLI?
public abstract class SomeClass
{
public abstract String SomeMethod();
}
No. You can only declare classes as abstract, and variables as references to classes (or as value types). And base can hold a reference to any class derived from MyBase.
An abstract class contains at least one pure virtual function. You declare a pure virtual function by using a pure specifier ( = 0 ) in the declaration of a virtual member function in the class declaration.
Abstraction means displaying only essential information and hiding the details. Data abstraction refers to providing only essential information about the data to the outside world, hiding the background details or implementation.
You create an abstract class by declaring at least one pure virtual member function. That's a virtual function declared by using the pure specifier ( = 0 ) syntax. Classes derived from the abstract class must implement the pure virtual function or they, too, are abstract classes.
Just mix up the keywords a bit to arrive at the correct syntax. abstract goes in the front in C# but at the end in C++/CLI. Same as the override keyword, also recognized today by C++11 compliant compilers which expect it at the end of the function declaration. Like = 0
does in traditional C++ to mark a function abstract:
public ref class SomeClass abstract {
public:
virtual String^ SomeMethod() abstract;
};
You use abstract
:
public ref class SomeClass abstract
{
public:
virtual System::String^ SomeMethod() = 0;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With