Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
72 views

C++ Programs

The document discusses the key components of a C++ program: declarations in header files, definitions in source files, and directives that provide instructions to the compiler. It then provides a simple "hello world" example to demonstrate these components, including the #include directive to import the iostream header, the using namespace std directive, the main() function definition, outputting text to cout, and returning 0 at the end.

Uploaded by

amolia2004
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views

C++ Programs

The document discusses the key components of a C++ program: declarations in header files, definitions in source files, and directives that provide instructions to the compiler. It then provides a simple "hello world" example to demonstrate these components, including the #include directive to import the iostream header, the using namespace std directive, the main() function definition, outputting text to cout, and returning 0 at the end.

Uploaded by

amolia2004
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 8

C++ Program Structure (and tools)

Today we’ll talk generally about C++


development (plus a few platform specifics)
• We’ll develop, submit, and grade code in Windows
• It’s also helpful to become familiar with Linux
– E.g., on shell.cec.wustl.edu
• For example, running code through two different
compilers can catch a lot more “easy to make” errors

CSE 332: C++ program structure and development environment


What Goes Into a C++ Program?
• Declarations: data types, function signatures, classes
– Allows the compiler to check for type safety, correct syntax
– Usually kept in “header” (.h) files
– Included as needed by other files (to keep compiler happy)
class Simple { typedef unsigned int UINT32;

public:
Simple (int i); int usage (char * program_name);
void print_i ();
private: struct Point2D {
int i_; double x_;
}; double y_;
};

• Definitions: static variable initialization, function implementation


– The part that turns into an executable program
– Usually kept in “source” (.cpp) files
void Simple::print_i ()
{
cout << “i_ is ” << i_ << endl;
}

• Directives: tell compiler (or precompiler) to do something


– More on this later

CSE 332: C++ program structure and development environment


A Very Simple C++ Program

#include <iostream> // precompiler directive

using namespace std; // compiler directive

// definition of function named “main”


int main (int, char *[])
{
cout << “hello, world!” << endl;
return 0;
}

CSE 332: C++ program structure and development environment


What is #include <iostream> ?

• #include tells the precompiler to include a file


• Usually, we include header files
– Contain declarations of structs, classes, functions
• Sometimes we include template definitions
– Varies from compiler to compiler
– Advanced topic we’ll cover later in the semester
• <iostream> is the C++ label for a standard
header file for input and output streams

CSE 332: C++ program structure and development environment


What is using namespace std; ?
• The using directive tells the compiler to include
code from libraries that have separate namespaces
– Similar idea to “packages” in other languages
• C++ provides a namespace for its standard library
– Called the “standard namespace” (written as std)
– cout, cin, and cerr standard iostreams, and much more
• Namespaces reduce collisions between symbols
– Rely on the :: scoping operator to match symbols to them
– If another library with namespace mylib defined cout we
could say std::cout vs. mylib::cout
• Can also apply using more selectively:
– E.g., just using std::cout

CSE 332: C++ program structure and development environment


What is int main (int, char*[]) { ... } ?
• Defines the main function of any C++ program
• Who calls main?
– The runtime environment, specifically a function often called
something like crt0 or crtexe
• What about the stuff in parentheses?
– A list of types of the input arguments to function main
– With the function name, makes up its signature
– Since this version of main ignores any inputs, we leave off
names of the input variables, and only give their types
• What about the stuff in braces?
– It’s the body of function main, its definition

CSE 332: C++ program structure and development environment


What’s cout << “hello, world!” << endl; ?

• Uses the standard output iostream, named cout


– For standard input, use cin
– For standard error, use cerr
• << is an operator for inserting into the stream
– A member operator of the ostream class
– Returns a reference to stream on which its called
– Can be applied repeatedly to references left-to-right
• “hello, world!” is a C-style string
– A 14-postion character array terminated by ‘\0’
• endl is an iostream manipulator
– Ends the line, by inserting end-of-line character(s)
– Also flushes the stream

CSE 332: C++ program structure and development environment


What about return 0; ?

• The main function should return an integer


– By convention it should return 0 for success
– And a non-zero value to indicate failure
• The program should not exit any other way
– Letting an exception propagate uncaught
– Dividing by zero
– Dereferencing a null pointer
– Accessing memory not owned by the program
• Indexing an array “out of range” can do this
• Dereferencing a “stray” pointer can do this

CSE 332: C++ program structure and development environment

You might also like