Click here to Skip to main content
15,896,201 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: cmath.h compile error Pin
Haakon S.10-Dec-20 1:58
Haakon S.10-Dec-20 1:58 
GeneralRe: cmath.h compile error Pin
Greg Utas10-Dec-20 2:19
professionalGreg Utas10-Dec-20 2:19 
SuggestionRe: cmath.h compile error Pin
David Crow10-Dec-20 2:13
David Crow10-Dec-20 2:13 
AnswerRe: cmath.h compile error Pin
Randor 10-Dec-20 2:46
professional Randor 10-Dec-20 2:46 
QuestionRe: cmath.h compile error Pin
Richard MacCutchan10-Dec-20 3:21
mveRichard MacCutchan10-Dec-20 3:21 
AnswerRe: cmath.h compile error Pin
Daniel Pfeffer10-Dec-20 3:53
professionalDaniel Pfeffer10-Dec-20 3:53 
AnswerRe: cmath.h compile error Problem solved Pin
Haakon S.11-Dec-20 4:07
Haakon S.11-Dec-20 4:07 
GeneralRe: cmath.h compile error Problem solved Pin
Randor 11-Dec-20 8:04
professional Randor 11-Dec-20 8:04 
GeneralRe: cmath.h compile error Problem solved Pin
Haakon S.11-Dec-20 23:56
Haakon S.11-Dec-20 23:56 
QuestionC++ class question Pin
pkfox8-Dec-20 6:40
professionalpkfox8-Dec-20 6:40 
AnswerRe: C++ class question Pin
Mircea Neacsu8-Dec-20 6:51
Mircea Neacsu8-Dec-20 6:51 
GeneralRe: C++ class question Pin
pkfox8-Dec-20 7:17
professionalpkfox8-Dec-20 7:17 
AnswerRe: C++ class question Pin
Mircea Neacsu8-Dec-20 7:29
Mircea Neacsu8-Dec-20 7:29 
QuestionRe: C++ class question Pin
David Crow8-Dec-20 7:06
David Crow8-Dec-20 7:06 
AnswerRe: C++ class question Pin
pkfox8-Dec-20 7:16
professionalpkfox8-Dec-20 7:16 
SuggestionRe: C++ class question Pin
David Crow8-Dec-20 7:19
David Crow8-Dec-20 7:19 
AnswerRe: C++ class question Pin
Joe Woodbury8-Dec-20 10:00
professionalJoe Woodbury8-Dec-20 10:00 
AnswerRe: C++ class question Pin
CPallini8-Dec-20 21:29
mveCPallini8-Dec-20 21:29 
GeneralRe: C++ class question Pin
pkfox9-Dec-20 3:19
professionalpkfox9-Dec-20 3:19 
GeneralRe: C++ class question Pin
CPallini9-Dec-20 7:28
mveCPallini9-Dec-20 7:28 
Quote:
which is not a problem but I'd like to know how to do it the other way
There isn't 'the other way' (AFAIK).

In C++, using new, you get a pointer. Moreover you need to handle the cleanup of the dynamically allocated memory:
C++
#include <iostream>
using namespace std;


namespace Test {
  class Dummy
  {
    string path;

  public:
    Dummy(string path) : path {path}{}
    string get (){return path;}
    void set(string newpath){ path = newpath; }
  };


  class Program
  {
    Dummy * dummy;

  public:
    static void main()
    {
      Program * p = new Program();
      p->dummy = new Dummy("MyPath");


      cout << p->dummy->get() << "\n";

      // cleanup 
      delete p->dummy;
      delete p;
    }

  };
} // <- Test


int main()
{
  Test::Program::main();
}


You may write the Program destructor to ammeliorate the code, but cleanup is unavoidable.

If you can initialize at once your objects then you could use the stack and the code would be nicer:
C++
#include <iostream>
using namespace std;


namespace Test {
  class Dummy
  {
    string path;

  public:
    Dummy(string path) : path {path}{}
    string get (){return path;}
    void set(string newpath){ path = newpath; }
  };


  class Program
  {
    Dummy dummy;

  public:
    Program( Dummy dummy):dummy{dummy}{}
    static void main()
    {
      Program p { Dummy{ "MyPath" } };
      cout << p.dummy.get() << "\n";

      // no cleanup needed
    }

  };
} // <- Test


int main()
{
  Test::Program::main();
}



Finally smart pointers allows you to make the two steps initiazlization without the hassle of manual cleanup, e.g.

C++
#include <iostream>
#include <memory>
using namespace std;


namespace Test {
  class Dummy
  {
    string path;

  public:
    Dummy(string path) : path {path}{}
    string get (){return path;}
    void set(string newpath){ path = newpath; }
  };


  class Program
  {
    unique_ptr<Dummy> dummy;

  public:
    static void main()
    {
      Program p {};
      p.dummy = make_unique<Dummy>("MyPath");

      cout << p.dummy->get() << "\n";

      // no cleanup needed
    }

  };
} // <- Test


int main()
{
  Test::Program::main();
}

"In testa che avete, Signor di Ceprano?"
-- Rigoletto

AnswerRe: C++ class question Pin
Daniel Pfeffer9-Dec-20 1:19
professionalDaniel Pfeffer9-Dec-20 1:19 
AnswerRe: C++ class question Pin
Richard MacCutchan9-Dec-20 3:43
mveRichard MacCutchan9-Dec-20 3:43 
GeneralRe: C++ class question Pin
pkfox9-Dec-20 4:53
professionalpkfox9-Dec-20 4:53 
GeneralRe: C++ class question Pin
Richard MacCutchan9-Dec-20 5:42
mveRichard MacCutchan9-Dec-20 5:42 
GeneralRe: C++ class question Pin
pkfox9-Dec-20 6:05
professionalpkfox9-Dec-20 6:05 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.