What .NET Developers Must Know about C++ Classes: Listing 3
An assignment between two C++ pointers to an object.
#include <iostream>
#include <memory>
using namespace std;
// same as in Listing 2. No changes.
class MyClass {
public:
MyClass(const int fieldInitValue) : myField_{fieldInitValue} {}
int GetField() { return myField_; } const
void SetField(const int value) { myField_ = value; }
private:
int myField_;
};
int main(int argc, char* argv[]) {
shared_ptr<MyClass> my1 { make_shared<MyClass>(5) }, my2 { my1 };
// Both my1 and my2 refer to a same instance
my2->SetField(3);
// Both print "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].