2

I have read a few posts but cannot figure out what is wrong.My Code is a s follows

#include <iostream>
using namespace std;  


/* compiles with command line  gcc xlibtest2.c -lX11 -lm -L/usr/X11R6/lib */
#include <X11/Xlib.h>  
#include <X11/Xutil.h>  
#include <X11/Xos.h>  
#include <X11/Xatom.h>    
#include <stdio.h>  
#include <math.h>  
#include <stdlib.h>  

public class Point
{
    int x;
    int y;

public Point()
        {
            this.x=0;
            this.y=0;
        }
};



/*Code For XLib-Begin*/

Display *display_ptr;
Screen *screen_ptr;
int screen_num;
char *display_name = NULL;
unsigned int display_width, display_height;

Window win;
int border_width;
unsigned int win_width, win_height;
int win_x, win_y;

XWMHints *wm_hints;
XClassHint *class_hints;
XSizeHints *size_hints;
XTextProperty win_name, icon_name;
char *win_name_string = "Example Window";
char *icon_name_string = "Icon for Example Window";

XEvent report;

GC gc, gc_yellow, gc_red, gc_grey,gc_blue;
unsigned long valuemask = 0;
XGCValues gc_values, gc_yellow_values, gc_red_values, gc_grey_values,gc_blue_values;;
Colormap color_map;
XColor tmp_color1, tmp_color2;

/*Code For Xlib- End*/





int main(int argc, char **argv)
{
//////some code here
}

thanks...it worked..ur right I am a Java guy.. one more thing

It gives an error if I write

private int x; private int y;

and if in the constructor I use Point() { this.x=2; }

Thanks in advance

abbas
  • 424
  • 3
  • 10
  • 22
  • proper syntax for referring to itself is `this->`, this is a pointer – Anycorn Sep 20 '10 at 03:06
  • 2
    You really should pick up [a good introductory C++ book](http://stackoverflow.com/questions/388242/the-definitive-c++-book-guide-and-list) if you don't already have one. If you do have one, you need to read it. Aside from the fact that they both use curly braces and let you make the computer do things, Java and C++ have very little in common. – James McNellis Sep 20 '10 at 03:26

2 Answers2

4

Change your Java like syntax to :

class Point //access modifiers cannot be applied to classes while defining them
{
    int x;
    int y;

   public : //Note a colon here

   Point() :x(),y() //member initialization list
   {
        //`this` is not a reference in C++                
   }
}; //Notice the semicolon
Prasoon Saurav
  • 91,295
  • 49
  • 239
  • 345
3

Try this:

class Point {
    int x;
    int y;

  public:
    Point(): x(0), y(0) {
    }
};

The syntax you are using looks like Java.

sje397
  • 41,293
  • 8
  • 87
  • 103