background preloader

Technical

Facebook Twitter

Is not available. C++ Design Pattern: What is a Design Pattern? Q: What is a Design Pattern? A: Design Patterns represent solutions to problems what arise when developing software within a particular context. Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.C. Alexander, The Timeless Way of Building, 1979 Patterns help you learn from other's successes, instead of your own failures.Mark Johnson (cited by Bruce Eckel) Q: How many types of design patterns exist? A: Basically, there are three categories: Creational Patterns: deal with initializing and configuring classes and objects Structural Patterns: deal with decoupling the interface and implementation of classes and objects Behavioral Patterns: deal with dynamic interactions among societies of classes and objects.

Memory Snapshot for a Process. In-depth memory layout is specific to both the CPU architecture and the OS itself. I'm going to describe how a process sees its own memory share during execution. Memory Layout from a process perspective When a program is executed it is read into memory* where it resides until termination. The code allocates a number of special purpose memory blocks for different data types. A very common scheme, but not the only one, is depicted in the following table.

100 C Interview Questions & C FAQs. Tree traversal. Types[edit] Pre-order: F, B, A, D, C, E, G, I, H In-order: A, B, C, D, E, F, G, H, I Post-order: A, C, E, D, B, H, I, G, F Level-order: F, B, G, A, D, I, C, E, H Compared to linear data structures like linked lists and one-dimensional arrays, which have a canonical method of traversal (namely in linear order), tree structures can be traversed in many different ways.

Tree traversal

The name given to a particular style of traversal comes from the order in which nodes are visited. For the purpose of illustration, it is assumed that left nodes always have priority over right nodes. Depth-first traversal is easily implemented via a stack, including recursively (via the call stack), while breadth-first traversal is easily implemented via a queue, including corecursively. Beyond these basic traversals, various more complex or hybrid schemes are possible, such as depth-limited searches such as iterative deepening depth-first search. Depth-first[edit] Pre-order[edit] In-order (symmetric)[edit] Post-order[edit] etc. C++ casting operators.

Converts between types using a combination of explicit and implicit conversions.

C++ casting operators

[edit] Syntax Returns a value of type new_type. [edit] Explanation 1) When the C-style cast expression is encountered, the compiler attempts the following cast expressions, in this order: a) const_cast<new_type>(expression) b) static_cast<new_type>(expression), with extensions: pointer or reference to a derived class is additionally allowed to be cast to pointer or reference to unambiguous base class (and vice versa) even if the base class is inaccessible (that is, this cast ignores the private inheritance specifier).

C) static_cast (with extensions) followed by const_cast d) reinterpret_cast<new_type>(expression) e) reinterpret_cast followed by const_cast The first choice that satisfies the requirements of the respective cast operator is selected, even if it cannot be compiled (see example).

VTABLE

Showthread. Complex Function pointers. Floating Point Numbers. By Jeff Bezanson Numbers are surely the most prevalent kind of data in computer programs.

Floating Point Numbers

They are so fundamental that people don't spend much time talking about them—surely everybody knows how to use numbers in their programs. Well, one of the wonderful things about programming is that nearly everywhere you look, you find more than meets the eye. Most programmers have heard or observed one strange thing or another about floating point numbers. For example, we often discover that floating point numbers that look the same do not necessarily satisfy C's "==" test. What is going on? Floating point numbers provide a kind of illusion; they look like "real" numbers, with decimals and possibly very large or small magnitudes.

Accuracy and precision are two concepts in measurement that nicely capture the different properties of ints and floats (on any system, independent of the particular floating point representation used). Now how can I make an outlandish claim like that?

Debbugger Writing