What .NET Developers Must Know about C++ Classes: Listing 4

MyClass declaration vs. definition.

// declaration of MyClass
class MyClass {
  MyClass(const int);

  int GetField() const;
  void SetField(const int);

  int myField_;

// 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; }

#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

  // 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@diegodagum.com.

comments powered by Disqus


.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events