Upload
xavier-dunn
View
33
Download
2
Embed Size (px)
DESCRIPTION
Quick Summary C++/CLI Basics. Data Types Controls Arrays In-class assignments. Namespaces. namespace MyNamespace { // …. } MyNamespace :: func1() using namespace OtherNamespace; Comments: // /* xxxx */. Basic Data Types. Type Range Literals/constants and variables - PowerPoint PPT Presentation
Citation preview
Quick Summary C++/CLI Basics
• Data Types
• Controls
• Arrays
• In-class assignments
Namespacesnamespace MyNamespace{
// ….
}
MyNamespace::func1()
using namespace OtherNamespace;
Comments: //
/* xxxx */
Basic Data Types
• Type
• Range
• Literals/constants and variables
• Operators and expressions
• Assignment
• Input and output
Primitive Data Types in C++/CLI• Integer:
– Int16 (short); UInt16 (unsinged short)
– Int32 (int or long); UInt32(unsigned int or long)
– Int64 (long long); UInt64(unsigned long long, _int64) int x, y(1), z = 123; (signed, 32 bits)
int x = y = z = 200;
Console::WriteLine(0x10);
Console::WriteLine(-0x10); // negative hex 10 is base-10 -16
• Floating:– Single (float, 32bits)
– Double (double, 64bits)
Primitive Data Types in C++/CLI• Boolean (bool, true or false)
• Character (Char, 16bits, unsigned unicode)– Character and escape sequence
char a = ‘A’; // character ‘A’
Char b = L‘A’; // unicode ‘A’
Char c = L‘\x0041’; // hex 41 is ASCII ‘A’
char d = ‘\t’; // tab escape
Char e = L‘\\’; // unicode backslash escape
Handles vs PointersHandle: safe code
• Handle: ^
• Reference data in managed heap (CLR offers memory management)
• Handle’s address can not be manipulated (no add or subtract offsets to it
• Return from gcnew after creating an instance of a reference type object in managed heap
Pointer: unsafe code
• Pointer: *
• Reference data in C Run-Time heap, need to handle memory management yourself
• pointer’s address can be manipulated
• Return from new after creating an instance of a reference type object in CRT heap
Operators, Expressions and Assignments, Precedence and
Associativity
• Arithmetic Operators• Unary Operators• Bitwise and Shift Operators• Relational Operators• Logical Operators• Ternary Operator
Quick Summary C++/CLI Basics
• Data Types
• Controls
• Arrays
• In-class assignments
Control Structures• Structured Programming
• Selection– if– if else– switch(break)
• Repetition (break, continue)– while– do … while– for
break & continueint sum=0;
for (int i=1; i<=10; i++) {
if (i%5==0) continue;
sum += i; // sum = sum+i;
}
int sum=0;
for (int i=1; i<=10; i++) {
if (i%5==0) break;
sum += i; // sum = sum+i;
}
Quick Summary C++/CLI Basics
• Data Types
• Controls
• Arrays
• In-class assignments
Arrays
• Arrays– One dimensional array– Two or multiple dimensional array
Array in C++/CLI• Array, element, index(or subscript)• array<int> ^ a = gcnew array<int>(12);• array<int> ^ a = {31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31};• a[0], a[1],…, and a[11]• a->Length• array<String ^> ^d = {“Sun”, “Mon”, “Tue”,
“Wed”, “Thu”, “Fri”, “Sat”};• int main(array<System::String ^> ^args) {}
Array in C++/CLI• Multi-dimensional Array• array<int, 2> ^ b = gcnew array<int, 2>(4,3);• array<int, 2> ^ b = {{1, 2, 3}, {4, 5, 6},
{7, 8, 9}, {0, 1, 2}};• b[0,0], b[0,1],…, b[3,2];• b->Rank, b->GetLength(0), b->GetLength(1)
Quick Summary C++ for .NET
• Data Types
• Controls
• Arrays
• In-class assignments– Control– Array