multiple .cpp programs, can individual .cpp return a value of 0 or 1 for future use?

Hi,

I have been googling/etc. for hours and I kept coming to these forums so I thought to post my problem.

I am making a code for my final project for a beginner programming course.

It is separated into different int main()'s as it is a lot of writing.


As for the question:


I would like to have several .cpp's to give me a value of 1 or 0 that can be recalled in a later .cpp. For example, part3.cpp = 1. part4.cpp = 0 but the 1 from part3.cpp remains so still equal to 1. And on and on. Until say part8.cpp in which time 0 to 8 can be the result that I can use if/else statements to cout varying outputs in relation to.


Is this possible?


I tried global variables but it has not worked. I continually get Linker command failed.


Is there other ways I can do this? Should I have different goals? Any ideas?


I cannot exactly put the code as it is a few hundred lines. I consider this a program focused on learning new things by using properly written code.

This is the outline (every program works on its own tested in a separate project.)


header.hpp
with extern int I define 8 variables (it is then #include in all .cpp's which necessitate it)

header.cpp
I initialize said variables

part1.cpp
if/else statements that gives a value to one of these variables, 1 or 0.

part2.cpp
Same as part 1

part3.cpp
bubble sort without a given value, stand alone program with only printed results not needed at end of program.

part4.cpp
same as 1 and 2

part5.cpp
switch statements for a value of 1 or 0

part 6 and 7 are the same as 5

In part 8 I would like to calculate the results

Thank you very much for any assistance
Jerry
Last edited on
I'm not sure I've understood what you are asking, however let me know if this example can be of any help:
jmuzsik1.cpp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// jmuzsik1.cpp
#include <iostream>

int jmuzsik_global;

void initializeJmuzsikGlobal(int value);
int increaseJmuzsikGlobalBySeven();

int main()
{
    std::cout << "\njmuzsik_global starting value is " << jmuzsik_global 
              << "\nNow I'm setting it to 6\n";
    initializeJmuzsikGlobal(6);

    std::cout << "\njmuzsik_global is now " << jmuzsik_global 
              << "\nNow I'm increasing it by 7\n";
    jmuzsik_global = increaseJmuzsikGlobalBySeven();

    std::cout << "\njmuzsik_global is now " << jmuzsik_global 
              << "\nNow I'm exiting. Goodbye.\n";

    return 0;
}


jmuzsik2.cpp:
1
2
3
4
5
6
7
8
// jmuzsik2.cpp

extern int jmuzsik_global;

void initializeJmuzsikGlobal(int value)
{
    jmuzsik_global = value;
}


jmuzsik3.cpp:
1
2
3
4
5
6
7
8
9
10
// jmuzsik3.cpp

extern int jmuzsik_global;

int increaseJmuzsikGlobalBySeven()
{
    jmuzsik_global +=7;

    return jmuzsik_global;
}


Output:

g++ -std=c++17 -Wall -Wextra -pedantic-errors jmuzsik1.cpp jmuzsik2.cpp jmuzsik3.cpp -o jmuzsik.exe
$ ./jmuzsik.exe 

jmuzsik_global starting value is 0
Now I'm setting it to 6

jmuzsik_global is now 6
Now I'm increasing it by 7

jmuzsik_global is now 13
Now I'm exiting. Goodbye.

Last edited on
Thanks very much for the answer!

What I am trying to do is similar to an exam. Program 1 is question 1, 2 is question 2. Etc. So, for each program I need the value of the answer of the question to be 1 or 0. This or I need one singular variable that increases incrementally or does not increase at all based upon what answer the user gives.

I tried exactly as you said though I have many errors stating for each

"initializegloballobal(int)", referenced from:

but... I have ten global variables.
This is likely too much?

For each program in which one of the global variables that was needed I included it. Lastly, at the end of the program there are some mathematical computations to see the score of the user.

Perhaps, there is a better way to do this?

Thank you


I'd like to be so canny that I could spot errors in a code by a simple description of it, but I don't think I'll never come up to that level.
The only thing I can point out is:
For each program in which one of the global variables that was needed I included it.

If you declare one or more variables inside a header file and than you include that header file into one or more source files, you are not creating global variables which can link each other. That's not the way to do that.
Also: global scope is to be avoided as far as it's possible, in my opinion.
What you are describing sounds pretty much as something that can be solved by several instances of a class.

So: if you need a real help, I'm afraid you'd better 'boil down' your files to a minimum compilable example and then ask how to achieve specific goals you're not getting to. Otherwise, you'd likely to get vague and not related answers.
can individual .cpp = 0 or 1 for future use?

To state the obvious, .cpp files are text files. A text file can't return a 0 or 1. However, a .cpp file can contain a function which returns 1 or 0. e.g.
1
2
3
4
5
6
//  part1.cpp
int part1 ()
{  //  Ask a question
   //  Get response
   // return 1 if response is correct, or 0 if incorrect
}


It is separated into different int main()'s

You can't have multiple main() functions in the same executable.

I tried global variables but it has not worked. I continually get Linker command failed.

Are your globals declared with extern keyword in the header.hpp file? If not, the linker is going to see multiple definitions of the same variables. Your globals should be defined in one and only one file without the extern keyword.

I have ten global variables. This is likely too much?

No, but as enoizat said, globals should be avoided. An array makes more sense than individual variables for each question. Consider a local array inside your main().
1
2
3
4
5
6
7
int main ()
{  int results[10];

  results[0] = part1();
  results[1] = part2();
  // etc
}

Last edited on
Thanks again. I would like to do arrays as you state, and pass on global variables, but I cannot understand how to do so. I will try to explain in code format.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main ()
{ int results[10];
   int twoplustwo;

std:cout<<"What is 2 plus 2?";
cin>twoplustwo;
if(twoplustwo==4)
{std:cout<<"Correct";
//at this point how do I attach the array to give a value of 1?
}
else
{std:cout<<"wrong";
//or to be 0 in this case?
}
/code][code]


Secondly,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
{ int results[10];//do I place this again, the same way? 
//Should it be a different value?
//Should I use it in every single .cpp?
   int twoplusthree;

std:cout<<"What is 2 plus 3?";
cin>twoplusthree;
if(twoplustwo==5)
{std:cout<<"Correct";
// Copied previous code mainly, if I do as you will explain for the 
//first code. How will array increment to two if user gets first and 
//second code correct? Or other cases?
}
else
{std:cout<<"wrong";
//or in this case?
}


Final code with results:
1
2
3
4
int main()
{
//can I simply recall the array in a cout statement for the results, 
//and can this value be used in if/else statements, etc.? 


Thanks very much, I read up some on arrays but could not understand it in relation to what I am trying to do.
Last edited on
Hi, jmuzsik.
Are you writing a C program or a C++ program? Because C++ is somewhat more than “C with cout”...

In C++ the usage of global scope can be avoided with a number of strategies, which would also help you to write easy to read code. However, I can appreciate that now you want your code to compile and run before taking on a new way of coding, so I’m going to help you with your current code, but please let me insist once more on this concept: avoid global scope as far as you can.

Firstly, main() is the ‘entry point’ of a C(and C++) program. So, how there could be more than one main()? :-)
If you are dealing with global scope, you ought be better decide in which file you have your main() and do not duplicate it.

Secondly, variable declared inside a function cannot be global, not only outside the file, but also inside the file.

Thirdly, you haven’t even mentioned header files... Since they can be included more than once, you need to take care not to mess with global space from inside them.

Finally, since pass on a pointer means pass on an integer value, that is one of the less expensive values in terms of cost of memory and performance, deciding to declare global a pointer is something that should be motivated by some serious design problem.

prove.cpp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// I would like to do arrays as you state, and pass on global variables,
// but I cannot understand how to do so.
#include <iostream>
#include <limits>
#include "Question1.h"
#include "Question2.h"

constexpr int MAX_RESULTS = 2;
// Global scope: let's give a name that's likely to be univoke.
int jmuzsik_global_results[MAX_RESULTS];

void printResults();

int main()
{
   std::cout << "main.cpp:\n"
                "=========\n"
                "main(): starting the program.\n";
   printResults();

   std::cout << "Shall we brush up math?\n";
   if(askSumTwoNumbers(2, 3, 1)) {
      std::cout << "Very good! Let's move on.\n";
   } else {
      std::cout << "Embarassing...\n";
   }

   if(askMultiplication(3, 3, 2)) {
      std::cout << "Brilliant!\n";
   } else {
      std::cout << "Let's stop here...\n";
   }

   printResults();

   std::cout << "\nPress ENTER to exit...\n";
   std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
   return 0;
}

void printResults()
{
   std::cout << "\n\"jmuzsik_global_results\" is now ";
   for(int i=0; i<MAX_RESULTS; i++) {
      std::cout << jmuzsik_global_results[i] << ' ';
   }
   std::cout << '\n';
}


Question1.h:
1
2
3
4
5
6
#ifndef QUESTION1_H
#define QUESTION1_H

bool askSumTwoNumbers(int one, int two, int position);

#endif // QUESTION1_H 


Question1.cpp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include "Question1.h"

// The following statements means:
// 'jmuzsik_global_results' is not to be created. It already exists
// somewhere else. I want the program to use that.
extern int jmuzsik_global_results[];

bool askSumTwoNumbers(int one, int two, int position)
{
   std::cout << "\nQuestion1.cpp:\n"
                "==============\n"
                "askSumTwoNumbers(): called by main().\n";

   std::cout << "What is " << one << " plus " << two << "?\n";
   int answer = 0;
   std::cin >> answer;

   bool isCorrect = false;
   if(answer == one+two) {
      jmuzsik_global_results[position-1]++;
      isCorrect = true;
   }

   return isCorrect;
}


Question2.h:
1
2
3
4
5
6
#ifndef QUESTION2_H
#define QUESTION2_H

bool askMultiplication(int one, int two, int position);

#endif // QUESTION2_H 


Question2.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include "Question2.h"

// The following statements means:
// 'jmuzsik_global_results' is not to be created. It already exists
// somewhere else. I want the program to use that.
extern int jmuzsik_global_results[];

bool askMultiplication(int one, int two, int position)
{
   std::cout << "\nQuestion2.cpp:\n"
                "==============\n"
                "askMultiplication(): called by main().\n";

   std::cout << "What is " << one << " times " << two << "?\n";
   int answer = 0;
   std::cin >> answer;

   bool isCorrect = false;
   if(answer == one*two) {
      jmuzsik_global_results[position-1]++;
      isCorrect = true;
   }

   return isCorrect;
}

So helpful! I am writing in C++

I did put myself in a large pickle, doing something which was not possible. It's only been about 4 weeks since I've been learning programming. I have learned very little so far.

So, I have many additional questions. Answer if you would or would not like to. This project is not due for a few months, so I am in no rush.

I will delete your comments and place my own in questions:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
#include <limits>

//why is limits used in this case?

#include "Question1.h"
#include "Question2.h"

constexpr int MAX_RESULTS = 2;

//is above simply giving a maximum value for the global integer?

int jmuzsik_global_results[MAX_RESULTS];

void printResults();

//is this a pointer? I honestly cannot understand your last paragraph. 
//Is what is within this program not ideal but required to make the program work?

int main()
{
   std::cout << "main.cpp:\n"
                "=========\n"
                "main(): starting the program.\n";
   printResults();

//What does this do? I see it gives a value 064064. Why does the statement:
//"jmuzsik_global_results" is now 064064... print?

   std::cout << "Shall we brush up math?\n";
   if(askSumTwoNumbers(2, 3, 1)) 

//So the 1 at the end relates to the first value of the
//jmuzsik_global_results? That is what it is allocated to?

{
      std::cout << "Very good! Let's move on.\n";
   } else {
      std::cout << "Embarassing...\n";
   }

   if(askMultiplication(3, 3, 2)) {
      std::cout << "Brilliant!\n";
   } else {
      std::cout << "Let's stop here...\n";
   }

   printResults();

   std::cout << "\nPress ENTER to exit...\n";
   std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
   return 0;
}

void printResults()
{
   std::cout << "\n\"jmuzsik_global_results\" is now ";
   for(int i=0; i<MAX_RESULTS; i++) {
      std::cout << jmuzsik_global_results[i] << ' ';
   }
   std::cout << '\n';

//These last two parts are completely above me.
//printResults(); relates to?
//std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
//What in the world is going on here?
//void section...?
//It prints the values to be 1 1. Can that be 2 instead?
//Can it be a value that grades the user, in a way?
//What does this, ' ', do?
//What doers  '\n' do?

}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include "Question1.h"

extern int jmuzsik_global_results[];

bool askSumTwoNumbers(int one, int two, int position)

//So, only true and false statements may be used in this case?

{
   std::cout << "\nQuestion1.cpp:\n"
                "==============\n"
                "askSumTwoNumbers(): called by main().\n";

   std::cout << "What is " << one << " plus " << two << "?\n";
   int answer = 0;
   std::cin >> answer;

   bool isCorrect = false;
   if(answer == one+two) {
      jmuzsik_global_results[position-1]++;
      isCorrect = true;
   }

//what is the isCorrect?
//Why is the false put first? 
//What does [position-1]++; exactly do?

   return isCorrect;

//Why is this put in at the end?
}



Ok. Lots of questions, I apologize. Also, my program is not as simple as 2 + 3, etc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 int point1;
    double numberbetween;
    
cout<< "1) Choose a number below or above one million\n"<<endl;
cin>>numberbetween;

if(numberbetween>1000000){
    
    cout<<"You aim high.\n"
    <<endl<<endl;
    
    point1=1;
}
else if(numberbetween<1000000)
{
    cout<<"You aim low.\n"
    <<endl<<endl;
    
    point1=0;
}
else
{cout<<"You did not follow instructions.\n"
    <<endl<<endl;}

    return 0;


There is such as this. Though, it is not ideal, as I've been messing with it since your last advice.

Secondly, there are codes like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
point2=0;
    char talkingelephants=0;
    
    
    cout<<  "2) You have two paths possible to take:\n\n"
    
    "A.One leads to flying cars and talking elephants.\n\n"
    
    "B. The other leads to a tall mountain, apple trees, and ducks."
    
    <<endl<<"Which way do you go? A or B"<<endl;
    
    cin>>talkingelephants;
    cout<<endl;
    
    if(talkingelephants=='A')
    {
        cout<<"The universe finds you unrealistic.\n"
        <<endl<<endl;
        
        point2=0;
    }
    else if(talkingelephants=='B')
    {
        cout<<"The universe likes realism.\n"
        <<endl<<endl;
        
        point2=1;
    }
    else
    {
        cout<<"Failed to follow instructions.\n"
        <<endl<<endl;
        
        point2=0;
        
       
    }


So, calling for an exact letter value.

Lastly,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 cout<<"A) Car at 60 miles/hour, time to reach sun?\n"
        
        "Pick 1, 2, or 3.\n"
        
        "1. 17 days \n"
        
        "2. How do you drive in space??\n"
        
        "3. 177 years\n";
        
        cin>>distancefromearthtosun;
        
        
        switch(distancefromearthtosun)
        {
            case 1:
                puts("Stupid");
                distancefromearthtosun=0;
                break;
            case 2:
                puts("Yes, it is impossible.");
                distancefromearthtosun=1;
                break;
            case 3:
                puts("Cars cannot drive in space");
                distancefromearthtosun=0;
                break;
                
            default:
                puts("That's not 1, 2, or 3");
                distancefromearthtosun=0;
                
                


So switch statements. This is all elementary. Experiments.

Do these work with the technique you outlined? I do not mind starting fresh, if it is not possible as I have time and do not mind flailing a little while learning. What would you recommend?
Hi, jmuzsik.
It's only been about 4 weeks since I've been learning programming

Really? But do you mean you’ve been learning C++ for 4 weeks, or is this the very first time you’re studying programming? C++ is said to be a four/five years plan to be fully mastered, perhaps it’s not the best choice for absolute beginners...
However, that’s up to you, I don’t want to discourage you.

But, in this case, if you have very little or no experience in programming, if I were you I’d change drastically my approach.
Splitting the code into several files is a must for ‘real’ programmers (it ensures benefits when building libraries and keeping one’s code organized), but it adds very little at the early stages of learning. Plus, you could soon being forced to mess with linkage issues, which are problems you can safely put off for a long time.

My personal advice would then be to start writing all your code inside a single file and start splitting it when you get to classes. As an immediate advantage, you could stop worrying about global scope for now and focus on syntax.

About your questions:
1)
1
2
3
4
 #include <limits>
//why is limits used in this case?
//std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
//What in the world is going on here? 


The simple answer is that those statements make the following line appear on screen
Press ENTER to exit...

and than the program stops until you press ENTER (it means “ignore every input apart from the ENTER key”).
This is useful to prevent the program from closing without any notice.

Do you need those instructions? If you delete those lines and you don’t experience any issue, they aren’t of any use for you (because of the environment you are working in).
So, this block of code can be deleted entirely, or must stay as it is:
1
2
3
4
#include <limits>
... 
std::cout << "\nPress ENTER to exit...\n";
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');



2)
1
2
constexpr int MAX_RESULTS = 2;
//is above simply giving a maximum value for the global integer? 

That statement defines a global variable of type integer, called ‘MAX_RESULTS’, and initializes it to 2.
The variable is required to be not-modifiable (constant).
That variable will be used later inside the program.

The first usage is here:
int jmuzsik_global_results[MAX_RESULTS];
which could be alternatively written
int jmuzsik_global_results[2];

and here:
for(int i=0; i<MAX_RESULTS; i++)
which could be alternatively written
for( int i = 0; i < 2; i++ )

Does it makes sense to define a global constant variable just to keep a value?
Yes, it does, because you can use it two hundreds of times and the day you want to change your code you only need to change one single line, for example from
constexpr int MAX_RESULTS = 2;
to
constexpr int MAX_RESULTS = 5;

But this is a programming strategy, whilst now you need to focus on syntax.

3)
1
2
3
4
5
6
int jmuzsik_global_results[MAX_RESULTS];

void printResults();

//is this a pointer? I honestly cannot understand your last paragraph. 
//Is what is within this program not ideal but required to make the program work? 


jmuzsik_global_results[] is an array, and it means is somewhat a pointer.
If you don’t know what a pointer is, it means you should not mess with them yet. They are largely used in C, but much less in C++.


4)
1
2
//What does this do? I see it gives a value 064064. Why does the statement:
//"jmuzsik_global_results" is now 064064... print? 

What?! :-O
Are you sure? Could you please provide your output?
This is mine:
main.cpp:
=========
main(): starting the program.

"jmuzsik_global_results" is now 0 0
Shall we brush up math?

Question1.cpp:
==============
askSumTwoNumbers(): called by main().
What is 2 plus 3?
5
Very good! Let's move on.

Question2.cpp:
==============
askMultiplication(): called by main().
What is 3 times 3?
9
Brilliant!

"jmuzsik_global_results" is now 1 1

Press ENTER to exit...


5)
1
2
3
if(askSumTwoNumbers(2, 3, 1))
//So the 1 at the end relates to the first value of the
//jmuzsik_global_results? That is what it is allocated to? 


The ‘1’ at the end relates to the first position inside the array “jmuzsik_global_results”, and that position has index ‘0’. That’s why, when we get to the moment to write in it, we state:
jmuzsik_global_results[position-1]
This way, ‘1’ becomes ‘0’.

That is what it is allocated to?
Giving a position (=an index) to an array let you access what’s allocated inside that position.

6)
1
2
3
4
5
6
7
8
9
   bool isCorrect = false;
   if(answer == one+two) {
      jmuzsik_global_results[position-1]++;
      isCorrect = true;
   }

//what is the isCorrect?
//Why is the false put first? 
//What does [position-1]++; exactly do? 


isCorrect is defined as a variable of type ‘bool’. It means it can only be assigned one of these two value, ‘true’ or ‘false’.
‘false’ is put first because we want that variable to become ‘true’ only if “answer == one+two” is true, otherwise it must keep ‘false’.

jmuzsik_global_results[position-1]++ accesses the ‘position-1’ element in jmuzsik_global_results[] and increases it by one.


7)
1
2
return isCorrect;
//Why is this put in at the end? 


It causes the function to hand the value of “isCorrect” back to main().

“main()” calls “askSumTwoNumbers()” here:
if(askSumTwoNumbers(2, 3, 1)
According to what “askSumTwoNumbers()” returns (i.e. “isCorrect” ‘true’ or ‘false’ value), the ‘if’ instruction decides to execute either the line
std::cout << "Very good! Let's move on.\n";
or the line:
std::cout << "Embarassing...\n";

8) //printResults(); relates to?
It invokes the function “printResults()”, which only display the values inside “jmuzsik_global_results[]”, and so doesn’t need any argument and does not returns any value.

//void section...?
“void” means: this function does not returns any value.
Compare:
void printResults(); --> does not return any value
bool askSumTwoNumbers(int one, int two, int position); --> returns a ‘bool’


9)
1
2
3
4
//It prints the values to be 1 1. Can that be 2 instead?
//Can it be a value that grades the user, in a way?
//What does this, ' ', do?
//What doers  '\n' do? 


The function printResults() sends to screen the values which are inside “jmuzsik_global_results[]” in the moment it is invoked.
If the values are:
jmuzsik_global_results[0] == 1
and
jmuzsik_global_results[1] == 1
then the output will be
1 1

If values are different, the output is different.

<< ' ' adds a space behind every values of jmuzsik_global_results[], otherwise the output would be
11
without spaces.

Likewise, std::cout << '\n'; adds a newline after all the values have been displayed.

Last edited on
Hi there

did you consider using a class? from what i read this post it might be good idea to implement class or functions.
If you put all code inside main() then yes you will end up with massive program that is difficult to understand and follow.On other hand if you have small peace of program in logically build functions or class that would be fairly easy to deal with.

:)
I appreciate the help.

Though, my understanding is not on par with what his being expressed. So, I have decided to put as much time as is possible in self learning ahead of my class. I am currently focusing on Derek Banas youtube videos called Learn to Program... he uses Python... but the concepts are applicable to c++. His videos are very clear.

So, I will come back later, and hopefully understand much better what you are expressing. The project can wait a month or so.

Still, I am curious, are there any resources that really improved your understanding of programming rather than simple trial and error? Also, do you have suggestions for a project that will force me to learn fundamental concepts? One which, I can spend, say 30+ hours on to make quite long and detailed. And to look back at it as something which taught me new techniques.
Hi Jmuzsik

there are plenty of good materials around, here you can find Tutorial section, on youtube there is a lot of videos, I like c++ the new boston or Buckey (same person) a lot of tutorials on C++
Another source (paid) is on Udemy.com there is course I follow made by Arkadiusz Wlodarczyk
https://www.udemy.com/user/arkadiuszwodarczyk/ his explanations are easy to follow and he is really quick with responses on forum. I don't think he left any unanswered question.

btw why do you follow lessons about Python if you want to learn C++??? is like learning French to know Spanish. makes no sense :)
Topic archived. No new replies allowed.