Solved

Simple Class Question

Posted on 2009-04-08
3
184 Views
Last Modified: 2012-05-06
Hello,

I am an experienced VB.NET programmer, trying to get a handle on C++ (console only, not Visual C++).  I am having a problem with using classes.

In VB.NET you can globally declare an instance of a class that's not initialized.   Then, later on, when an event occurs you can initialize it.  (e.g. MyString = New String)  It will then execute the code in the constructor.

How can I accomplish this in C++?

Thanks,
-Torrwin


int _tmain(int argc, _TCHAR* argv[])

{

	//Declare a global instance of the File class

         File myFile;
 

	cout << "Please select one of the following options:\n";

	cout << "1) Setup a File\n";

	

	cin >> iChoice;
 

	if (iChoice == 1) 

	{

                  //This next line doesn't work in C++, what should it be?

	         myFile = New File;

	}

	else

	{

		cout << "Invalid choice.\n";

	}
 

	return 0;

}

Open in new window

0
Comment
Question by:Torrwin
  • 2
3 Comments
 
LVL 86

Accepted Solution

by:
jkr earned 500 total points
ID: 24098856
In your cade, you would use the 'new' operator along with a pointer, e.g.
int _tmain(int argc, _TCHAR* argv[])

{

        //Declare an instance of a File class pointer

         File* myFile;

 

        cout << "Please select one of the following options:\n";

        cout << "1) Setup a File\n";

        

        cin >> iChoice;

 

        if (iChoice == 1) 

        {

                  

                 myFile = new File;

        }

        else

        {

                cout << "Invalid choice.\n";

        }
 

        delete myFile; // required to not create memory leaks

 

        return 0;

}

Open in new window

0
 
LVL 86

Expert Comment

by:jkr
ID: 24098892
BTW, see also http://www.cplusplus.com/doc/tutorial/dynamic/ for more on that issue.
0
 
LVL 53

Expert Comment

by:Infinity08
ID: 24099749
Make sure to initialize the pointer to 0 when declaring it. Or, in jkr's code, the delete at the end of main might cause unexpected results.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

What is C++ STL?: STL stands for Standard Template Library and is a part of standard C++ libraries. It contains many useful data structures (containers) and algorithms, which can spare you a lot of the time. Today we will look at the STL Vector. …
Container Orchestration platforms empower organizations to scale their apps at an exceptional rate. This is the reason numerous innovation-driven companies are moving apps to an appropriated datacenter wide platform that empowers them to scale at a …
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now