The Microsoft .NET Framework contains a namespace named
System. This is the primary namespace of the classes used to create
applications. This namespace contains a class named Console. This class
represents the DOS window that is used to display the results of a console
application:
The Console class contains methods used to display
information on the screen or to retrieve information from the user who types it
in the DOS window. The method that is used to display text on the screen is
called Write. To use the Write() method, inside of the
parentheses, type the sentence between double-quotes. Here is an example:
int main() { System::Console::Write("Welcome to C++/CLI Programming"); return 0; }
This would produce:
Besides the Write() method, the Console class
also provides a method called WriteLine(). The difference is that, after
displaying something on the screen, the Write() method keeps the caret on
the same line but WriteLine() transfers the caret the next line.
The C++ Standard provides a namespace called std. The
std namespace includes a series of libraries that you will routinely and
regularly use in your programs.
The following libraries are part of the std namespace:
Therefore, whenever you need to use a library that is part
of the std namespace, instead of typing a library with its file
extension, as in iostream.h, you can just type the name of the library as
in iostream. Then, on the second line, type using namespace std;. As an example, instead of typing
#include <iostream.h>
You can type:
#include <iostream> using namespace std;
#include <iostream>
using namespace std;
int main()
{
cout << "Welcome to C++/CLI Programming";
return 0;
}
As mentioned previously, you can use different namespaces in
the same program. Based on this, you can use both the std and the System
namespaces in your program. The compiler would know exactly where each is
located. To access a class that is part of a certain namespace, you can call the
namespace followed by the :: operator and access the class. Here are examples:
#include <iostream> int main() { std::cout << "Welcome to C++/CLI Programming. "; System::Console::WriteLine("C++/CLI is the new full-featured C++"); return 0; }
You can also type using namespace for each namespace that
you will need in your program. The above program could be written as:
#include <iostream> using namespace std; using namespace System; int main() { std::cout << "Welcome to C++/CLI Programming. "; System::Console::WriteLine("C++/CLI is the new full-featured C++"); return 0; }
Remember that, when calling using namespace, you can omit
qualifying a class by preceding it with the namespace:
#include <iostream> using namespace std; using namespace System; int main() { cout << "Welcome to C++/CLI Programming. "; Console::WriteLine("C++/CLI is the new full-featured C++"); return 0; }
The C computer language is the parent of C++ and C++ is the
parent of the C++/CLI language. To maintain backward compatibility, the
operations performed in C were made available to C++ and most standards of C++
are available in C++/CLI. Based on this, you can transparently include C
routines in your C++/CLI program.
The libraries of the C language available in C++ are:
Like C++/CLI and C++, the C computer language has its own
mechanisms to display a value on the screen. One of the functions used to do
this is printf_s. To use it, add an opening and a closing parentheses to
it. Inside of the parentheses, enter the value you want to display. Here is an
example:
#include <iostream>
using namespace std;
using namespace System;
int main()
{
cout << "Welcome to C++/CLI Programming. ";
Console::WriteLine("C++/CLI is the new full-featured C++");
printf_s("C++/CLI highlights the best of C++ and significantly modernizes it");
return 0;
}
Of course, there are many other details and aspects
concerning these built-in namespaces, libraries, and operations. We will review
as many as possible in future lessons.
The #define, called a directive, is used to
direct the compiler to create or perform a (small) action. This action
is called a macro. For example, you can ask the compiler to use
"Rio de Janeiro" whenever it sees RDJ. To do that you can
write
#define RDJ "Rio de Janeiro"
If you use the word RDJ in your program, the
compiler would replace it with the defined name. You can also use the #define
directive to create words that would be replaced with numeric values.
Here is an example:
#include <iostream> using namespace std; using namespace System; #define RDJ "Rio de Janeiro" #define Print(Sentence) Console::WriteLine(Sentence) int main() { cout << "City: " << RDJ << "\n"; Print("Welcome to the Wonderful World of C++/CLI."); return 0; }
This would produce:
City: Rio de Janeiro Welcome to the Wonderful World of C++/CLI. Press any key to continue . . .
A compiler of one particular programming environment has characteristics that distinguish it from other compilers.
To customize its behavior, some instructions can tell it how to behavior and how
to treat some code sections when it encounters them. One of the instructions
used by a programming to direct a compiler is done using the
#pragma preprocessor. It is used to give specific instructions
to the compiler based on the particular compiler that is being used to
create the program. This means the
#pragma directive completely depends on the compiler you are using.
Microsoft Visual Studio provides a particularly wonderful
editor that provides a good level of control over the code you write. The
characteristics include color-coded words, intuitive indentation, delimitation
of sections of code, etc. Consider the following contents of the Code Editor
based on what we have reviewed so far:
Notice that there are - buttons on the left side of some
lines of code. These allow you to collapse a section of code if you think you
don't need to see it. To do this, you can click the - button. If you click that
- button, it changes into a + button. Here is an example:
The + button allows you to expand a hidden code section.
This behavior of creating + and - buttons is part of the Code Editor of
Microsoft Visual Studio (yes, many other programming environments use that
behavior also). To create these sections, the Code Editor follows some rules.
For example, it looks for the start and end of such items as directives,
namespaces, classes, functions, etc.
Besides, or instead of, the sections of code created by the
Code Editor, if you want, you want, you can create your own sections. To do
this, start the section with
#pragma region Whatever
and end it with
#pragma endregion Whatever
When and where you start, the #pragma region
expression is required. On the right side of this expression, you can type
anything you want on the line. To end the section, type #pragma endregion,
followed by anything you want. Consider the following example:
#pragma once struct CHouse { int protect() { return 0; } }; #pragma region These are classes used for Student Registration struct CCar { int drive() { return 0; } }; class CStudent { int walk() { return 0; } }; #pragma endregion We can just stop it here int main() { return 0; }
You don't have to type anything on the right side of #pragma
endregion. After creating the region, the Code Editor would display a -
button to the left side of #pragma region with a line from there to the
left of #pragma endregion:
This then allows you to expand and collapse that section at
will:
We mentioned that you didn't have to type anything on the
right side of #pragma endregion and you could leave it empty. In our
example, notice that there is a rectangle with gray lines around the string that
follows #pragma region. This rectangle doesn't cover the string that
follows #pragma endregion. This means that if you don't type anything on
the right side of #pragma endregion, that section on the right side the #pragma
region line would not show.
|
Namespaces and Code Directives
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment