Extending examples for some more good code bad code.
authorarunabha
Mon, 12 Apr 2010 16:01:06 +0100
changeset 5 29cf076edbda
parent 4 c0296ad2454d
child 6 2618a0f10e3e
Extending examples for some more good code bad code.
examples/after/example_classes.h
examples/before/example_classes.h
--- a/examples/after/example_classes.h	Tue Apr 06 21:24:03 2010 +0100
+++ b/examples/after/example_classes.h	Mon Apr 12 16:01:06 2010 +0100
@@ -23,3 +23,29 @@
 	int iA;
 	int iB;
 	};
+
+
+//Use the keyword "Typename" when using an initialiser that has been Typedef'd inside a class template
+//
+
+template <class T>
+class list {
+	public:
+	typedef unsigned int myType;
+	myType setSize (unsigned int x, unsigned int y);
+	};
+ 
+template<class T>	
+inline  typename list<T>::myType list<T>::setSize (unsigned int x, unsigned int y){  //This line will NOT throw the error
+         return (x*y);
+	};
+
+
+//use \x to specify the character code directly
+
+char* literals()
+   {
+   char* string = "123\x7e456";     // use \x to specify the character code directly
+   return string;
+   }
+
--- a/examples/before/example_classes.h	Tue Apr 06 21:24:03 2010 +0100
+++ b/examples/before/example_classes.h	Mon Apr 12 16:01:06 2010 +0100
@@ -23,3 +23,33 @@
 	int iA;
 	int iB;
 	};
+
+
+// Correct refenrencing of types defined inside a class Template
+// Symptom GCC : Error: Expected initializer before ' (class name)' 
+
+template <class T>
+class list {
+	public:
+	typedef unsigned int myType;
+	myType setSize (unsigned int x, unsigned int y);
+	};
+ 
+template<class T>	
+inline  list<T>::myType list<T>::setSize (unsigned int x, unsigned int y) //This line will throw the error
+
+	{  
+         return (x*y);
+	};
+
+
+
+// Need to use  \x to specify the character code directly
+char* literals()
+   {
+   char* string = "123£456";
+
+   return string;
+   }
+
+