Задача 33 Bad Characters


Spoiler Warning!!

Задача која навистина не знев за некој работи(не дека немав слушнато али во C# е малце поразлично) е постоењето на динамичко и статичко кастирање (не кастрирање 😀 тоа друго е haha).

Според референцата на Visual C++ од Microsoft еве ја нивната дефиниција:

Converts expression to the type of type-id based solely on the types present in the expression.

И нејзиното дефинирање:

static_cast <type-id> ( expression )

Истото можеме да го искористиме и во обичното C++ (т.е во non .net platform)

Да преминеме на задачата

/************************************************
* Toy program to print three characters.       *
************************************************/
#include <iostream>
int main()
{
//A character to be printed
char ch = ‘A’;
std::cout << ch;        // Output A
std::cout << ch+1;      // Output B
std::cout << ch+2;      // Output C
std::cout << std::endl;
return (0);
}
/************************************************
************************************************/

Задача гласи зошто не добиваме ABC т.е ако со првото cout се печати А , со второто B и тн.

Концептот на користење на кастирањето е тоа што тоа го сведува на ниво на типот на променливата која што ја имаме дефинирано т.е char во овој случај.

Така да решението би ни бил:

/************************************************
* Toy program to print three characters.       *
************************************************/
#include <iostream>
int main()
{
//A character to be printed
char ch = ‘A’;
std::cout << static_cast<char>(ch);        // Output A
std::cout << static_cast<char>(ch+1);      // Output B
std::cout << static_cast<char>(ch+2);      // Output C
std::cout << std::endl;
return (0);
}
/************************************************
************************************************/

P.S Ова е spoiler warning again

link

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: