NameSilo

How Much Of C++ do i know?

Spaceship Spaceship
Watch

Untitled

ThE POwEr oF An IDeAEstablished Member
Impact
28
Hi Guys i have been learning C++ for 6 months now...

Here is what i know about it:

Starting From The Basics:

1) All the pre-defined datatypes i know: int, float, double, char
2) I know all the arithmetic operators and all arithmetic assignment operators
3) cout
4) cin
5) \n, \t, endl etc.
6) compiling ( This is obvious )
7) Header files i know: iostream.h, math.h, conio.h, stdio.h, string.h, ctype.h, iomanip.h, stdlib.h, process.h.
8) Type Casting
9) Toupper
10) Converting to ASCII and vice-versa
11) Increment & Decrement operators ( ++, -- )
12) Pre and post increment
13) String Datatype ( e.g char [20] )
14) Constant (const)
15) gets
16) atrcpy, strcmpi, strcmp, strlwr, strupr, strrev, strlen.
17) condition statements ( if & else, switch, ternary operators ).
18) abs, fabs ( absolute values )
19) break; & continue;
20) goto
21) loops ( while, do while, for )
22) pow, sqrt, sqr
23) local and global variables ( Local is obviously known )
24) nested loops using all 3 loops
25) clrscr(), getch()
26) Number systems ( Converting between diff. bases - 2, 10, 8, 16 )
27) Arrays
28) User-defined Functions
29) passing variables as parameters ( reference variables too )
30) Returning values from functions
31) Default Parameters
32) exit(0);
33) Strings, Array of Characters, Array of Integers, Array of float etc.
34) 2-D array of characters ( Array of String ). 2-D array of other data types too!
35) Sorting - Bubble sort, Insertion Sort, Selection Sort.
36) Binary Searching
37) using 2-d arrays as matrices
38) setw()
39) Structures
40) Nested Structures
41) Array Of Structures
42) Containership
43) sizeof();
44) random(any number);, randomize();
45) cout.precision(2), cout.setf(ios::showpoint);
46) gotoxy(x,y);

Thats about it! And ya i obviously know the basic programming stuff! and all the 46 topics i have mentioned above, I have done in great detail! I mean i know lots of things about all 46 mentioned above, and what would cause errors and what won't!

I use Turbo C++ BTW!

And i have done a lot of programs too!
I mean a LOT! like around 800 - 1000!

Starting from basic loops to stuyff like Mark listing tables, Pascal's triangle, Sorting Arrays. Modifying, deleting, inserting, searching and sorting arrays. I have also done ideal weight calculation for N number of students programs, And the most recent programs i did were using structures... I have done programs like marklist again modifying it using structures. And the basic programs include nCr calculation, Factorials, Sum of any kind of series, picking out the prime, perfect, armstrong, special nos. from an array!!

I have done the foll. topics in great detail:
1) arrays ( 1-d, s-d and of all datatypes including structures )
2) loops
3) Structures
4) functions

Apart from what i know in c++ and the programs, i can also do algorithms and flow charts which can also be considered as basics, i mean every program should know that!



All i want to you guys to tell me is how much of C++ do i really know right now?? Just give me a % of what i know by reading all the above topics i have posted!!

I want you programmers to help me out here!!

And apart from that, What is the latest version of C++ ?? Is it similar to Turbo?? Would it help me if i want to become a programmer??

And please let me know What other languages i could learn if i know C++ now..........

Like PHP, Javascript etc. ( I really don't know those, But would love to learn )

Would C++ make otehr languages easier to learn??

I would love replies!!! Please help me here!!! Thank you,

Untitled
 
0
•••
The views expressed on this page by users and staff are their own, not those of NamePros.
.US domains.US domains
in my experience C++ makes it easier to learn
Java
php
javascript

But it looks like you know those too
 
0
•••
I really don't know java, php, Javascript ........... But would love to learn 'em if its easy like how C++ was......
 
0
•••
Take it one step at a time and it will be easy. Just need to spend some quality time with one language at a time
 
0
•••
Thanks for the tip!! But anyway what do you think of the C++ i know??

How much more is there to learn anyway??
 
0
•••
I personally think you know a lot. i cant judge one way or another since im not an C++ expert.

Heres a way to start getting into php

http://codewalkers.com/

Good Tutuorials which in turn you can pick up some of the code right a way
 
Last edited:
0
•••
Once you learn C++ learning the rest is very easy.. Most languages have the same ideas or sort of the same methods used with C++.. Plus knowing programming language helps.

- Steve
 
0
•••
The syntax of C++ is very similar to PHP and JS.

Yeh, a few keywords, and how you define certain objects is a bit different in some cases, but nothing big. :tu:
 
0
•••
Thanks for the comments...... Anyway i just want to know whether what i know in C++ is good enough??

I mean how much more is there to go?? What is the percentage i have learnt out of the whole C++ Package .......... I mean atleast roughly.........

And i would love it if someone could post some samples of php, java etc.
 
0
•••
PHP

Class Example from UebiMail
PHP:
<?php

class phpmailer {
	var $Priority         = 3;
	var $CharSet          = "iso-8859-1";
	var $ContentType      = "text/plain";
	var $Encoding         = "8bit";
	var $From             = "root@localhost";
	var $FromName         = "root";
	var $Subject          = "";
	var $Body             = "";
	var $WordWrap         = true;
	var $MailerDebug      = false;
	var $UseMSMailHeaders = true;

	// SMTP

	var $Host        = "localhost";
	var $Port        = 25;
	var $Helo        = "";
	var $Timeout     = 10; // Socket timeout in sec.
	var $SMTPDebug   = false;

	
	/////////////////////////////////////////////////
	// PRIVATE VARIABLES
	/////////////////////////////////////////////////
	var $version        = "";
	var $to             = array();
	var $cc             = array();
	var $bcc            = array();
	var $ReplyTo        = array();
	var $attachment     = array();
	var $CustomHeader   = array();	
	var $boundary       = false;
	var $ErrorAlerts    = Array();
	var $blUseAuthLogin = false;
	var $AuthUser       = "";
	var $AuthPass       = "";

	function UseAuthLogin($user,$pass) {
		$this->blUseAuthLogin = true;
		$this->AuthUser = $user;
		$this->AuthPass = $pass;
	}
	
	/////////////////////////////////////////////////
	// VARIABLE METHODS
	/////////////////////////////////////////////////
	function IsHTML($bool) {
		if($bool == true)
			$this->ContentType = "text/html";
		else
			$this->ContentType = "text/plain";
	}

	/////////////////////////////////////////////////
	// LOAD VARIABLES
	/////////////////////////////////////////////////

	function Start() {
		global $appname,$appversion;
		$this->Version = $appname." ".$appversion;
		$this->Helo = ereg_replace("[^A-Za-z0-9]","",$appname);
	}


	/////////////////////////////////////////////////
	// RECIPIENT METHODS
	/////////////////////////////////////////////////	

	
	function AddAddress($address, $name = "") {
		$cur = count($this->to);
		$this->to[$cur][0] = trim($address);
		$this->to[$cur][1] = $name;
	}

	function AddCC($address, $name = "") {
		$cur = count($this->cc);
		$this->cc[$cur][0] = trim($address);
		$this->cc[$cur][1] = $name;
	}

	function AddBCC($address, $name = "") {
		$cur = count($this->bcc);
		$this->bcc[$cur][0] = trim($address);
		$this->bcc[$cur][1] = $name;
	}

	function AddReplyTo($address, $name = "") {
		$cur = count($this->ReplyTo);
		$this->ReplyTo[$cur][0] = trim($address);
		$this->ReplyTo[$cur][1] = $name;
	}


	/////////////////////////////////////////////////
	// MAIL SENDING METHODS
	/////////////////////////////////////////////////

	/**
	 * Send method creates message and assigns Mailer.  Returns bool.
	 * @public
	 * @returns bool
	 */
	function Send() {
		if(count($this->to)+count($this->cc)+count($this->bcc) == 0) {
			$this->error_handler("You must provide at least one recipient email address");
			return false;
		}
		$header = $this->create_header();

		if(($body = $this->create_body()) === false)
		   return false;

		if($this->smtp_send($header, $body) === false)
		   return false;
		return sprintf("%s%s", $header, $body);
	}

	function smtp_send($header, $body) {

		$smtp = new SMTP;
		$smtp->do_debug = $this->SMTPDebug;
		$hosts = explode(";", $this->Host);
		$index = 0;
		$connection = false;
		
		while($index < count($hosts) && $connection == false) {
			if($smtp->Connect($hosts[$index], $this->Port, $this->Timeout))
				$connection = true;
			$index++;
		}

		if(!$connection) {
			$this->error_handler("SMTP Error: could not connect to SMTP host server(s)");
			return false;
		}

		if($this->blUseAuthLogin) {
			if(!$smtp->AuthHello($this->Helo,$this->AuthUser,$this->AuthPass)) {
			   $this->error_handler("SMTP Error: Invรกlid username/password");
			   return false;
			}
		} else
			$smtp->Hello($this->Helo);

		$smtp->MailFrom(sprintf("<%s>", $this->From));
		for($i = 0; $i < count($this->to); $i++)
			$smtp->Recipient(sprintf("<%s>", $this->to[$i][0]));
		for($i = 0; $i < count($this->cc); $i++)
			$smtp->Recipient(sprintf("<%s>", $this->cc[$i][0]));
		for($i = 0; $i < count($this->bcc); $i++)
			$smtp->Recipient(sprintf("<%s>", $this->bcc[$i][0]));
		if(!$smtp->Data(sprintf("%s%s", $header, $body))) {
		   $this->error_handler("SMTP Error: Data not accepted");
		   return false;
		}
		$smtp->Quit();
	}

	/////////////////////////////////////////////////
	// MESSAGE CREATION METHODS
	/////////////////////////////////////////////////

	function addr_append($type, $addr) {
		$addr_str = "";
		$addr_str .= sprintf("%s: %s <%s>", $type, $addr[0][1], $addr[0][0]);

		if(count($addr) > 1) {
			for($i = 1; $i < count($addr); $i++) {
				$addr_str .= sprintf(", %s <%s>", $addr[$i][1], $addr[$i][0]);
			}
			$addr_str .= "\r\n";
		} else
			$addr_str .= "\r\n";

		return($addr_str);
	}

	function wordwrap($message, $length) {
		$line = explode("\n", $message);
		$message = "";
		for ($i=0 ;$i < count($line); $i++) 
		{
			$line_part = explode(" ", trim($line[$i]));
			$buf = "";
			for ($e = 0; $e<count($line_part); $e++) 
			{
				$buf_o = $buf;
				if ($e == 0)
					$buf .= $line_part[$e];
				else 
					$buf .= " " . $line_part[$e];
				if (strlen($buf) > $length and $buf_o != "")
				{
					$message .= $buf_o . "\n";
					$buf = $line_part[$e];
				}
			}
			$message .= $buf . "\n";
		}
		
		return ($message);
	}

	function create_header() {
		$this->Start();
		$header = array();
		$header[] = sprintf("Date: %s\r\n", date("D, j M Y G:i:s"));

		$header[] = sprintf("From: %s <%s>\r\n", $this->FromName, trim($this->From));
		if(count($this->to) > 0)
			$header[] = $this->addr_append("To", $this->to);
		if(count($this->cc) > 0)
			$header[] = $this->addr_append("Cc", $this->cc);
		if(count($this->bcc) > 0)
			$header[] = $this->addr_append("Bcc", $this->bcc);
		if(count($this->ReplyTo) > 0)
			$header[] = $this->addr_append("Reply-to", $this->ReplyTo);
		$header[] = sprintf("Subject: %s\r\n", trim($this->Subject));
		$header[] = sprintf("X-Priority: %d\r\n", $this->Priority);
		$header[] = sprintf("X-Mailer: %s\r\n", $this->Version);
		$header[] = sprintf("Content-Transfer-Encoding: %s\r\n", $this->Encoding);
		$header[] = sprintf("Return-Path: %s\r\n", trim($this->From));
		
		// Add custom headers
		for($index = 0; $index < count($this->CustomHeader); $index++)
		   $header[] = sprintf("%s\r\n", $this->CustomHeader[$index]);

		if($this->UseMSMailHeaders)
		   $header[] = $this->UseMSMailHeaders();

		// Add all attachments
		if(count($this->attachment) > 0)
		{
			$header[] = sprintf("Content-Type: multipart/mixed; charset=\"%s\";\r\n", $this->CharSet);
			$header[] = sprintf(" boundary=\"--=%s\"\r\n", $this->boundary);
		}
		else
			$header[] = sprintf("Content-Type: %s; charset=\"%s\";\r\n", $this->ContentType, $this->CharSet);
		
		$header[] = "MIME-Version: 1.0\r\n";
		
		return(join("", $header)."\r\n");
	}

	function create_body() {
		if($this->WordWrap)
			$this->Body = $this->wordwrap($this->Body, $this->WordWrap);
		if(count($this->attachment) > 0) {
			if(!$body = $this->attach_all())
			   return false;
		}
		else
			$body = $this->Body;
		
		return(trim($body));		
	}
}
?>

Simple Normal PHP - Using a few common functions.

PHP:
<?php
require("function.php");

$d = dir(".");
$i = 0;
while($entry=$d->read()) {
$f = substr($entry, strlen($entry) - 3);
if ($f == txt)
$arr[$i] = $entry;
$i++;
}
rsort($arr, SORT_NUMERIC);

for($j = 0; $j <= $i; $j++)
{
echo openfile($arr[$j]) . "<P>";
}
$d->close();
      

?>

Java Simple Classes/Objects example

Code:
import jpcap.*;
import jpcap.packet.Packet;
import javax.swing.*;
import java.util.*;

/*
 * Class that does the sniffing work...sort of.
 * snifferthread passes an instance of Sniffer to the pcap library to pass packets back too.
 */

public class Sniffer implements PacketReceiver
{
    private DefaultListModel ljep;
    private boolean displayhex;
    private int pknum;
    
    /* Constructor */
    public Sniffer(DefaultListModel jep, boolean hex)
    {
        ljep=jep;
        displayhex=hex;
        pknum = 0;
    }
    
    /* Returns a hex string representation of a byte value.*/
    String byteToHex(byte b) 
    {
        char hexDigit[] = {'0', '1', '2', '3', '4', '5', '6', '7','8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
        char[] array = {hexDigit[(b >> 4) & 0x0f], hexDigit[b & 0x0f]};
        return new String(array);
    }

    /* Converts a byte array into a string.*/
    String bytesToString(byte[] array)
    {
        int x=0;
        StringBuffer str = new StringBuffer();
        if(displayhex == true)
        {
            for(int k = 0; k < array.length; k++) 
            {
                if(x<9)
                {
                    str.append(" 0x" + byteToHex(array[k]));
                    ++x;
                }
                else
                {
                    x=0;
                    str.append(" 0x" + byteToHex(array[k])+ "\r\n");
                }
            }
            return str.toString();
        }
        else
        {
            return new String(array);
        }
    }
    
    /* Function that is passed to packets by pcap.*/
    public void receivePacket(Packet packet) 
    {
        listdata tmp;
        if(packet.data.length>0)
        {
            tmp = new listdata();
            tmp.data = bytesToString(packet.data)+"\r\n";
            tmp.header = Integer.toString(pknum++) + " " + new Date().toString();
            ljep.add(0,tmp);
        }
    }
}

Another small java downloader program

Code:
   import java.io.*;
   import java.net.*;
   import java.util.*;
   import javax.swing.*;
   import java.awt.event.*;
   import java.awt.*;
    class Downloader extends JFrame{
      JProgressBar progress;
      int maxLabel = 15;
      JTextField speed, sizeL;
      int bytesRead;
      boolean running = false;
      private File destDir;
      private String prefsFile = "prefs";    
       private void setSpeed(float sp){
         setSpeed(sp + " kb/s");
      }
       private void setSize(int i){
         String s;
         if(i < 1024){
            s = i + " bytes";
         }
         else if(i < 1048576){
            s = ((float)i/1024)+ " kilobytes";
         }
         else{
            s = ((float)i/ 1048576) + " magabytes";
         }
         sizeL.setText(s);
      }
       private void setSpeed(String sp){
         speed.setText(sp);
      }
       public int getChosen(JFileChooser chooser){
         return chooser.showOpenDialog(this);
      }
       public void download(final URL location){
         new Thread(
                new Runnable(){
                   public void run(){
                     try{
                        URLConnection connection = location.openConnection();
                        int sourceLen = connection.getContentLength();
                       
                        File dest = selectFileName(location);
                        if(dest != null){
                           progress.setMinimum(0);
                           int max = 100;
                           if(sourceLen != -1){
                              max = sourceLen;
                           }
                           progress.setMaximum(max);       
                             
                           progress.setValue(0);
                           progress.setStringPainted(true);
                           progress.setToolTipText("Downloading " + location);     
                           InputStream is = connection.getInputStream();
                           
                           FileOutputStream destFile = new FileOutputStream(dest);
                           bytesRead = 0;
                           int b;
                           running = true;
                           new ByteTimer().start();    
                           while((b = is.read())!= -1){
                              destFile.write(b);
                              if(sourceLen != -1){
                                 progress.setValue(++bytesRead);
                              }
                           }
                           running = false;
                           if(sourceLen != -1){
                              progress.setValue(max);
                           }
                           destFile.close();
                           is.close();
                        }
                     }
                     
                         catch(Exception e){
                           error("Error", "An error has occurred: " + e);
                        }
                  }
               }).start();
         
      }
       
       public static void main(String[] args){
         new Downloader();
      }
       public void error(String title, String message){
         JOptionPane.showMessageDialog(this,
                                 message, 
                        			title, JOptionPane.INFORMATION_MESSAGE);        
      }
       public Downloader(){
         loadPrefs();

 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         setTitle("Andrew's little downloader");
         setResizable(false);

         getContentPane().add(getContent());
         pack();
         show();
      }
      
       private JPanel getContent(){
         JPanel content = new JPanel(new BorderLayout(5, 5));
            final JTextField urlField = new JTextField("", 40);
         content.add(urlField, BorderLayout.CENTER);
          class DownloadListener implements ActionListener{
             public void actionPerformed(ActionEvent event){
               String urlLoc = urlField.getText();
               try{
                  setSpeed("Not downloading");
                  download(new URL(urlLoc));
               }
                   catch(MalformedURLException e){
                     error("Invalid URL", "Sorry but the specified URL is invalid : " + urlLoc + "\n" + e);
                  }
            }
         }
         DownloadListener dl = new DownloadListener();
         JButton get = new JButton("Get");
         urlField.addActionListener(dl);
         get.addActionListener(dl);
         JButton paste = new JButton("Paste");
         paste.addActionListener(
                new ActionListener(){
                   public void actionPerformed(ActionEvent e){
                     urlField.setText("");
                     urlField.paste();
                  }	
               });             
         content.add(getDirPanel(), BorderLayout.NORTH);
         content.add(getProgPanel(), BorderLayout.SOUTH);
         content.add(get, BorderLayout.EAST);
         content.add(paste, BorderLayout.WEST);
         return content;
      }
    
       private JPanel getProgPanel(){
         speed = new JTextField("", maxLabel);
         sizeL = new JTextField("", maxLabel);
      
         progress = new JProgressBar();
         speed.setEditable(false);
         sizeL.setEditable(false);
         setSpeed("Not downloading");
         setSize(0);
      	      	
         JPanel progPanel = new JPanel(new BorderLayout());
         progPanel.add(sizeL, BorderLayout.WEST);
         progPanel.add(progress, BorderLayout.CENTER);
         progPanel.add(speed, BorderLayout.EAST);
      
         return progPanel;
      }
       private JPanel getDirPanel(){
         JPanel dirPanel = new JPanel(new BorderLayout());
         JLabel label = new JLabel("Destination dir:");
         dirPanel.add(label, BorderLayout.WEST);
         final JTextField dirField = new JTextField(destDir.toString());
         dirField.setEditable(false);
         dirPanel.add(dirField, BorderLayout.CENTER);
         JButton change = new JButton("Change");
         change.addActionListener(
                new ActionListener(){
                   public void actionPerformed(ActionEvent e){
                     File dir = selectDir();
                     if(dir != null){
                        destDir = dir;
                        dirField.setText(destDir.toString());
                        savePrefs();
                     }
                  }
               });
         dirPanel.add(change, BorderLayout.EAST);
         return dirPanel;
      }
       public class ByteTimer extends Thread{
         public int lastSize = 0;
          public void run(){
            lastSize = bytesRead;
            try{
               while(running){
                  sleep(950);
                  int amount = bytesRead - lastSize;
                  setSpeed(((float)amount/1024));
                  setSize(bytesRead);
                  lastSize = bytesRead;
               }
               setSpeed("Complete");
            }
                catch(Exception e){
                  setSpeed("An error occurred");
               }
         }
      }
       private void loadPrefs(){
         try{
            FileInputStream in = new FileInputStream(prefsFile);
            ObjectInputStream s = new ObjectInputStream(in);
            destDir = (File)s.readObject();
         }
             catch(Exception e){
               destDir = new File(System.getProperty("user.home"));
            }
      }
       private void savePrefs(){
         try{
            FileOutputStream out = new FileOutputStream(prefsFile);
            ObjectOutputStream s = new ObjectOutputStream(out);
            s.writeObject(destDir);
            s.flush();
         }
             catch(Exception e){
            
            }
      }
       private File selectDir(){
         JFileChooser chooser = new JFileChooser(destDir);
         chooser.setApproveButtonMnemonic('s');
         chooser.setApproveButtonText("Select Directory");
         chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
         File dir = null;
         int returnVal = getChosen(chooser);
         if (returnVal == JFileChooser.APPROVE_OPTION) {
            dir = chooser.getSelectedFile();
         }
         return dir;
      }
       private File selectFileName(URL location){
         String name = location.getFile().toString();
         int pos = name.lastIndexOf("/");
         if (pos != -1) {
            name = name.substring(pos+1, name.length());
         }
         String s = (String)JOptionPane.showInputDialog(this, "What do you want to save the file as?" , name);
         File dest = null;
         if(s != null){
            dest = new File(destDir, s);
            if(dest.exists()){
               if(!ask("Save over existing file")){
                  selectFileName(location);
               }
            }
         }
         return dest;  
      }
       private boolean ask(String action){
         boolean confirmed = false;
         String title = action.substring(0, 1).toUpperCase() +
            action.substring(1) + "?";
         int option = JOptionPane.showConfirmDialog(
                           this, "Do you want to " + action + "?",
                           title,
                           JOptionPane.YES_NO_OPTION);
         if(option == JOptionPane.YES_OPTION){
            confirmed = true;
         }
           
         return confirmed;
      }
   }

PS. These are not my makings, I took them from a freely avaliable Source Code website.

- Steve
 
0
•••
To answer your question-

There is no limit to how much you know or don't know. What you make and do with what you can is your knowledge. Knowing a bunch of functions doesn't do anything if you can't make something useful.
 
0
•••
Some of the stuff you mentioned aren't limited onto to C++. Algorithms like merge sort, quick sort and data structures like binary search trees, queues, stacks, etc can be implemented in practically all programming languages.
 
0
•••
tip of the iceberg.

your list consists of mainly topics covered in intro level university computer science courses.

lots of interesting things left for you to learn. good luck.
 
0
•••
Hmm ......... Thanks guys. I am at the school level right now...... I mean we have a 2 years C++ course and I have completed a year ..........

I have done many programs, simple ones though....... I wanted to make sure if iam ready to do some big projects....

Its just that i dunno where to begin! lol!

Iam learning by myself on the net too...... Using tutorials........

So if you guys can assist me on somethings it would be great! And saw the code snippets..... It seems easy! I will start learning PHP too then! .......

Can someone give me weblinks for tutorials for:

PHP
Javascript
C++
Java

And pelase tell me, what else is essential for a programmer to know?? ...... I mean what other language for making softwares or for building websites.... like ruby, perl, ajax, python, ASP...... I have no clue about those languages though!!

Thanks to all of you again!


Untitled
 
0
•••
For 6 months I'd say you've made some good headway, but most of what you listed is really C and not C++. In fact, you've listed practically nothing that is C++ specific. Where are the classes? Templates? Standard C++ Library (the erstwhile STL)? Exceptions? You've also left out some critical concepts and types (here's a random grab-bag): references, pointers, unions, dispatch tables, functors, operator overloading (polymorphism in general, for that matter), and more.

Yes, I realize you've only been at this for six months, but that's my point...you've only been at this for six months :) There's plenty more to see and do.

Also, you need to consider how much you really DO know about each item you've listed. I could write entire book chapters about some of them. Take const, for example.

Do you know the difference between

const char *
char const *
const car const *

Also, can you override (e.g. break) constness? If so, how? Are there cases where you cannot do this? And why would you/would you not want to do this at all?

What about const classes, const class functions and const class member variables? What about these in derived classes?

I could go on and on and on, just about const alone(!)

"returning values from functions" is another one of those things that can get very very nasty, especially where references and complex stack-based variables are concerned (and even worse when both are used in tandem!)

So...you've made a really great start at learning the basics of C, which is absolutely necessary to being a C++ programmer. You'll have fun on the journey, this I guarantee.
 
0
•••
try learning python. Its a fast, easy to learn and error free. Google has a lot of code in python if you were looking for some success stories, and the author of python Guido works for google too
 
0
•••
I myself am teaching myself c++ (mainly from books and newsgroups etc, using visual studio 2005).

As cef mentioned you do seem to be missing things like operator overloading and proper object orientated programming however you have learnt a fair amount.

You should be able to learn plenty of other languages based on what you know in c++ as a lot of other languages take aspects of c or c++ and bring into their own language. If you do decide to learn another language however be careful that you do not start getting yourself confused because of the slight difference in syntax.

For example if you are in a class method in c++ to access a class member you can simply use var_name (depending on the circumstances) but in php you would do $this->var_name. Although minor it can be very easy to forget while coding and simply doing $var_name and forgetting you cannot do that in a php class will cause problems with debugging
 
0
•••
nice....... Thanks for the info ....... Iam learning classes right now..... Just finished of with structures...........
 
0
•••
I didnt learn c++, i learnt c# in school instead.
 
0
•••
It all depends on what you want to learn.. Personally I dislike C++ I am more of a VB/Java/C# dude myself..

My saying.. learn as many languages are you can because everyone has their weakness and strength..

- Steve
 
0
•••
Domain Recover
DomainEasy โ€” Live Options
  • The sidebar remains visible by scrolling at a speed relative to the pageโ€™s height.
Back