2. C++
✤ Object Orientated Language
✤ Adds to the C Language
✤ Pre-dates Java and C#
✤ Fully Compiled
✤ Standard Libraries (such as strings)
3. C++
✤ Points of interest
✤ Multiple Inheritance
✤ Operator overloading
✤ Templates
✤ Strings
4. C++
✤ Things you might miss
✤ No garbage collection - manual memory management
✤ No collections
✤ You can use the Standard Template Library (STL)
5. Qt
✤ Cross platform GUI framework
✤ Compatible at source level
✤ C++ based Object Orientated Framework
✤ With some (rather good) Qt extensions
✤ Lots of useful components (strings, networking, Variant data types
etc..)
✤ Available on Linux, Mac OS, Symbian, MS Windows,........
6. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
7. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
8. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
9. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
10. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
11. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
12. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
13. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
14. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
15. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
16. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
17. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
18. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
19. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
20. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
21. Part A - Anatomy of a C++ Program
The class
class declaration (header file) class implementation (cpp file)
class MyClass #include "myclass.h"
{
private: MyClass::MyClass() {
int age; MyClass(0);
}
void anotherBirthday() {
age++; MyClass::MyClass(int initialValue) {
} this->setAge(initialValue);
}
public:
MyClass(); MyClass::~MyClass() {
MyClass(int initialValue); age = 0;
}
~MyClass();
int getAge() { void MyClass::setAge(int v) {
return age; if (age == v) return;
} age = v;
void setAge(int v); }
};
22. Instantiating objects
✤ Two options
✤ MyClass a(18);
✤ a.setAge(21);
✤ Pointer type (heap only)
✤ MyClass *a;
✤ a = new MyClass();
✤ a->setAge(21);
✤ delete a;
23. Strings
✤ C++ has a standard string library
✤ #include <string>
✤ Create strings:
✤ std::string s = "Hello";
✤ Concatenate strings using “operator overloading”
✤ s = s + " world";
24. Videos
✤ See videos on the module site
✤ C++
✤ Qt