Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

[C++] Tutorial 1: Discussion

  1. Jun 26, 2004 #1


    User Avatar
    Staff Emeritus

    Please post your C++ questions or comments here for Tutorial 1.
  2. jcsd
  3. Jun 26, 2004 #2


    User Avatar

    What do you mean by tutoriel ? hmm ?
  4. Jun 26, 2004 #3


    User Avatar
    Staff Emeritus

    Look at the sticky below this thread. I'm in the process of writing up the first part. I will post it very soon.
  5. Jun 26, 2004 #4


    User Avatar

    Sorry I didn't read your notice post right above before giving a comment,
    OK, seriously, the topics you listed gave me an impression of my first days in college, biting my nails and my pencil from time to time listening to my Delphi teachers trying to explain what was necessary to become a programmer, because I was starting to learn programming languages with Delphi and Basic, although their syntax and structures have been utterly erased from my memmory. What a Cool tutor you are, I have to say that!
    Before introducing about array, or perhaps while you are writing about it, i also think if pointer is important enough to be included, to be digged as deeply as possible.
    I think conditional statements and iterative or control statements should also dig dig diged deeply too, especially should give students some ideas of how to use if/else effectively as possible since I believe these things will be mentioned more in their future (thisz juts my personal idea). Those who hav some basic skills in progremming will suun grasp the control statements, but handling problems with those are again letthem go back to how to correctly use iterators and operators.
    Ok, frankly I'm sleepy now, I can only give some *rough* draft/ideas or acutlay nothing, hoep some piple will join in to make htis much interesting and more *beautiful*.
    Finaly, Stick with the Standard and update infor all the time, yor tutoriels'll look as handsome as Mangan does! :D

    *I guess :shy: there're some thinkings taht I am Mangan :shy:, byt it only happens after i see my doctor and ask her to change my all :shy:*

    (tomorrow or acouple of days later, I will try to write more about what i think)
    Sorry for short and quite menaingless comments-if they turn out to be so.
    Last edited: Jun 26, 2004
  6. Jun 26, 2004 #5


    User Avatar
    Staff Emeritus

    Nec, yes, I will give plenty of real world examples. What I'll do is revise and add more content to my previous postings for those who are still have difficulty while still creating new tutorials so people who already have basic programming skills don't feel like the course is going slow.
  7. Jun 27, 2004 #6
    hey dduardo this is a really cool idea. i enjoyed it from since the java classs was implemented and seeing c++ i was amazed because 1. i recently started the language and 2. i use dev c++ and thats a featured program in your tutorial so I just like to let you know that what you are doing is really appreciated. its like going to school on the web.
  8. Jun 30, 2004 #7


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    Very good dduardo!! :smile: :smile:
    A good resource I can learn something from :approve:
  9. Jul 7, 2004 #8
    Hey, first I was want to say good job, It's nice to see somebody who's willing to input the effort and time to help others.

    If I had to suggest something... I would ask you to clarify your code examples a little.
    like this excerpt...

    int x = 1, y = 3, z = 4;
    int *num;
    const float pi = 3.14;
    y = x + (int)pi;
    num = &y;

    if you could go into a tad more detail I'm sure that I and others would appreciate it. I know that playing around with it is a good way to learn, but I'm having a hard time understanding what's going on there and I just think it would help if you gave a little push.

    Other than that though, great tutorial and I'm looking forward to the next parts.
  10. Jul 7, 2004 #9
    Hey this is great. I'm just about to take a c++ class this summer. Great timing dduardo
  11. Jul 7, 2004 #10


    User Avatar
    Gold Member

    hey i got a question..

    suppose class Foo has function returnMe. it has no variables (meaning returnMe() without any arguments)

    Foo x;

    this should return an OBJECT x. So basically it just returns itself.

    How do i define Foo :: returnMe() { } ??
  12. Jul 8, 2004 #11


    User Avatar
    Staff Emeritus

    00XeRo, will do. I have been a little busy with my own software project, so updating has been a little slow.

    *****Advanced C++ Below. It has nothing to do with the tutorial*****

    cronxeh if you want a class to return itself use the this pointer. The this pointer is a c++ keyword. Here is an example of how it works:

    Code (Text):
    #include <iostream>

    using namespace std;

    class foo {


    foo* returnme(void);


    foo* foo::returnme(void) {
    return this;

    int main( int argc, char *argv[] ) {

    foo x;
    foo *y;

    y = x.returnme();

    cout << y << endl;
    cout << &x << endl;

    return 0;
    If you run this program you will see that y points to the base address of x. Therefore y is x.
    Last edited: Jul 8, 2004
  13. Jul 8, 2004 #12
    I always wonderd what the arguments were that are inside the main meathod

    int main( int argc , char **argv )

    what are int argc, char **argv?
  14. Jul 8, 2004 #13


    User Avatar
    Staff Emeritus

    The arguments inside of main are used to store command line arguments. For instances:

    ping -A localhost

    "ping" is the program name and "-A localhost" are the arguments. The environment your in will pass the argument part to your program. Argc or Argument Count will tell you that there are 2 arguments - "-A" and "localhost". Argv or Argument Value is an array of pointers (or a pointer to a pointer) that stores the actual agrument strings.

    int main( int argc, char **argv) is equivalent to int main( int argc, char *argv[] )

    [edit] gnome, your right, it is an array of pointers. I should make a point about that subtle distinction in my tutorial.

    An array of pointers:
    int *array[];

    A pointer to an array
    int (*array)[];
    Last edited: Jul 8, 2004
  15. Jul 8, 2004 #14
    /*They are there to allow you to pass parameters into the program from the command line.

    argv[] is an array of pointers to your parameters; the parameters are stored as character strings.

    argc is the number of parameters.

    argv[0] always points to the name of the program, so argc is always >= 1

    For example, here is a program that prints "hello" followed by whatever string the user types after the program name at the command line, or just "hello." if no parameters are supplied:

    using namespace std;

    int main(int argc, char *argv[]){

    cout << "hello";

    if (argc>1)
    cout << ",";

    for (int i=1; i < argc; i++)
    cout << " " << argv;

    cout << "." << endl;

    return 0;

  16. Jul 13, 2004 #15
    ok, apparently I was supposed to know C before taking this class. My teacher wants me to use a header file. What exactly do I put in a header file and could you show me an example?
  17. Jul 17, 2004 #16


    User Avatar
    Staff Emeritus

    When you want to include a header in a file you should write something like this:
    #include "myheader.h"

    The header file should contain something like this:

    #ifndef MYHEADER_H
    #define MYHEADER_H


  18. Jul 18, 2004 #17
    what type of code would I put in there?
    sorry I'm so dense
  19. Jul 18, 2004 #18
    In C++ typically you would put a class definition in a header file (.h) -- just the declaration of the class, containing a bunch of one-line declarations of all of the methods and data members of the class.

    Then, the code to implement all of the methods goes in an implementation file (.cpp).
  20. Jul 18, 2004 #19


    User Avatar
    Staff Emeritus

    DarkAnt, the code you put there are your functions.
  21. Jul 20, 2004 #20
    hey dduardo when you are finished with the main topics are you going to give a tutorial on using some gui toolkit or so?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook