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

Delegating constructors in C++, C# and Java.

#include <string>
#include <stdlib.h>

class MyBase {
public:
  MyBase(const int field) : field_(field) {};
  // The following overloading gets a string and delegates construction
  // to the version that gets int.
  MyBase(const string fieldStr) : MyBase(atoi(fieldStr.c_str())) {}
  // in C#, the line above is:
  // MyBase(string fieldStr) : this(Int32.Parse(fieldStr)) {}
  // in Java,
  // MyBase(String fieldStr) { this(Integer.parseInt(fieldStr)); }
  
private:
  int field_;
};

class MyDerived : public MyBase {
public:
  MyDerived(const int field) :  MyBase(field) {...}
  // in C#, MyDerived(int field) :  base(field) {...}
  // in Java, MyDerived(int field) { super(field); ...}
}

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]

comments powered by Disqus

Featured

  • Top 3 Blazor Extensions for Visual Studio Code

    Some developers prefer to create applications with Microsoft's open-source Blazor tooling from within the open-source, cross-platform Visual Studio Code editor. Here are the top tools in the VS Code Marketplace for those folk, as measured by the number of installations.

  • How to Invert a Machine Learning Matrix Using C#

    VSM Senior Technical Editor Dr. James McCaffrey, of Microsoft Research, explains why inverting a matrix -- one of the more common tasks in data science and machine learning -- is difficult and presents code that you can use as-is, or as a starting point for custom matrix inversion scenarios.

  • Microsoft Engineer: 'It's Time to Move OData to .NET 5'

    Microsoft engineer Sam Xu says "it’s time to move OData to .NET 5" and in a new blog post he shows how to do just that.

  • Microsoft Goes Virtual with Developer Education in Face of COVID-19

    Like many organizations that host developer educational events, Microsoft has gone virtual amid shelter-in-place directives and a surge in remote work stemming from the COVID-19 pandemic.

  • Microsoft Enhances Low-Code Power Apps

    Microsoft's nod to the low-code movement, Power Apps, has been enhanced with a bevy of new features, including mixed reality, canvas/model support in a new mobile app, UX improvements and more.

.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events