What .NET Developers Must Know about C++ Classes: Listing 4
MyClass declaration vs. definition.
MyClass.h:
// declaration of MyClass
class MyClass {
public:
MyClass(const int);
int GetField() const;
void SetField(const int);
private:
int myField_;
};
MyClass.cpp:
// this #include tells the compiler what class the functions defined
// below belong to
#include "MyClass.h"
MyClass::MyClass(const int fieldInitValue) : myField_{fieldInitValue} {}
int MyClass::GetField() const { return myField_; }
void MyClass::SetField(const int value) { myField_ = value; }
main.cpp:
#include <iostream>
// this include tells the compiler the contract of invoked MyClass functions
#include "MyClass.h"
using namespace std;
int main(int argc, char* argv[]) {
MyClass my1 { 5 }, my2 { my1 };
// my1 and my2 are (don't refer to) different instances
my2.SetField(3);
// my1 prints "5"; my2 does "3"
cout << "my1.MyField = " << my1.GetField() << ", my2.MyField = " << my2.GetField() << endl;
}
About the Author
Diego Dagum is a software architect and developer with more than 20 years of experience. He can be reached at [email protected].