Transcript Lecture 1
Concepts in C++
Games Audio Programming
Lecture 1
About the module
Lectures/Tutorials
The Assessment
Assignment
Language introduction
Module Text
Deitel, H.M. & Deitel, P.J. (2003)
C++ How to program,
Prentice Hall, U.S. ISBN 0-13-111881-1
Liberty, J. & Horvath, D.B. (2005)
Teach Yourself C++ in 24 Hours,
Sams, USA. ISBN 0-672-32681-7
Overland, B. (2005)
C++ Without Fear
Prenctice Hall, USA. ISBN 0-321-24695-0
Module Text for C++
If available – second hand?
Graham, N (1991) Learning C++
McGraw Hill, USA. ISBN 0-07-100849-7
Eckle, B. (2000) Thinking in C++ (Volume 1)
Eckle, B. (2003) Thinking in C++ (Volume 2)
Both available as free download
http://www.mindview.net/Books/TICPP/ThinkingInCPP
2e.html
Vol 1 – 867KB; Vol 2 – 991KB
Module Schedule
Availability
Blackboard
Available beyond University Network
Integrated Development Environment
(IDE)
Using Microsoft Visual Studio.NET
Strictly C++
Initial User Guide on Blackboard
Self discovery also required
Other IDE may be used – Borland,
UNIX/Linux, Command Line) as long as
strictly C++
Should run on University computers though
may use Notepads / Laptops.
using namespace std;
bool
Class – Specifying the access
Class – default will not allow access
Access Specifiers
private:
public:
protected:
default
allows external access
restricted external access
Concentrate on public & private for now.
protected covered in later lecture
Constructor usage
Initialisation parameters added to code
e.g.
int main(void)
{
Account Tom(250.00, 5.3);
}
Tom’s account will be instantiated with…
An opening balance of £250.00
An opening interest rate of 5.3%
and
Using a prototype
#include <iostream>
using namespace std;
void function1(bool val);
void function2(bool val);
function prototypes
or declarations
int main() {
function1(true);
function2(true);
}
void function2(bool val) {
cout << "This is function 2" << endl;
if (val)
function1(!val);
}
void function1(bool val) {
cout << "This is function 1" << endl;
if (val)
function2(!val);
}
function definitions
Header files
when developing larger programs, it is useful to put the
prototypes in a separate header file
suffix .h, for example MyFunctions.h
any program file that uses these functions can include the
header file
#include “MyFunctions.h”
this enables the compiler to check the parameters and return
type of any functions called are correct
without needing to access the function definitions
header files can also contain constants, enums, structures and
class declarations
the use of header files allows the same declarations to be used
in many .cpp files
Guarding against multiple inclusions
functions can be declared multiple times in the same
source file
but defined only once
prototypes repeated
method body
structures, enums and classes can be declared only
once
it's easy to include the header file twice in the same
source file
guard against this by using conditional definition or
pragma
Account.h
#ifndef ACCOUNT_H
#define ACCOUNT_H
class Account {
private:
double balance;
double interestRate;
public:
Account(double initialBalance, double rate);
double getBalance();
void deposit(double amount);
void withdraw(double amount);
void addInterest();
};
#endif
#include "account.h"
account.cpp
Account::Account(double initialBalance, double
rate) :
balance(initialBalance), interestRate(rate) { }
double Account::getBalance(){return balance;}
void Account::deposit(double amount) {
balance += amount;
}
void Account::withdraw(double amount) {
// implement this method yourself
}
void Account::addInterest() {
balance *= (1 + interestRate/100.0);
}