Quick Summary CCLI Basics Data Types Controls Arrays

Quick Summary C++/CLI Basics • Data Types • Controls • Arrays • In-class assignments

Namespaces namespace My. Namespace { // …. } My. Namespace: : func 1() using namespace Other. Namespace; 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: – Int 16 (short); UInt 16 (unsinged short) – Int 32 (int or long); UInt 32(unsigned int or long) – Int 64 (long); UInt 64(unsigned long, _int 64) int x, y(1), z = 123; (signed, 32 bits) int x = y = z = 200; Console: : Write. Line(0 x 10); Console: : Write. Line(-0 x 10); // negative hex 10 is base-10 -16 • Floating: – Single (float, 32 bits) – Double (double, 64 bits)

Primitive Data Types in C++/CLI • Boolean (bool, true or false) • Character (Char, 16 bits, unsigned unicode) – Character and escape sequence char a = ‘A’; // character ‘A’ Char b = L‘A’; // unicode ‘A’ Char c = L‘x 0041’; // hex 41 is ASCII ‘A’ char d = ‘t’; // tab escape Char e = L‘\’; // unicode backslash escape

Handles vs Pointers Handle: 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 else – switch(break) • Repetition (break, continue) – while – do … while – for

break & continue int 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}; • 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->Get. Length(0), b->Get. Length(1)

Quick Summary C++ for. NET • • Data Types Controls Arrays In-class assignments – Control – Array
- Slides: 15