What exactly is nullptr?

How is it a keyword and an instance of a type? This isn’t surprising. Both true and false are keywords and as literals they have a type ( bool ). nullptr is a pointer literal of type std::nullptr_t, and it’s a prvalue (you cannot take the address of it using &). 4.10 about pointer conversion says that a prvalue of type std::nullptr_t is a null pointer constant, and that an … Read more

Convert char to int in C and C++

Depends on what you want to do: to read the value as an ascii code, you can write to convert the character ‘0’ -> 0, ‘1’ -> 1, etc, you can write Explanation:a – ‘0’ is equivalent to ((int)a) – ((int)’0′), which means the ascii values of the characters are subtracted from each other. Since 0 comes directly before 1 in the ascii … Read more

Good input validation loop using cin – C++

I’m not a huge fan of turning on exceptions for iostreams. I/O errors aren’t exceptional enough, in that errors are often very likely. I prefer only to use exceptions for less frequent error conditions. The code isn’t bad, but skipping 80 characters is a bit arbitrary, and the error variable isn’t necessary if you fiddle … Read more

Passing an array by reference

It’s a syntax for array references – you need to use (&array) to clarify to the compiler that you want a reference to an array, rather than the (invalid) array of references int & array[100];. EDIT: Some clarification. These three are different ways of declaring the same function. They’re all treated as taking an int * parameter, you can pass … Read more

how to implement Interfaces in C++?

C++ has no built-in concepts of interfaces. You can implement it using abstract classes which contains only pure virtual functions. Since it allows multiple inheritance, you can inherit this class to create another class which will then contain this interface (I mean, object interface 🙂 ) in it. An example would be something like this … Read more

When to use reinterpret_cast?

The C++ standard guarantees the following: static_casting a pointer to and from void* preserves the address. That is, in the following, a, b and c all point to the same address: reinterpret_cast only guarantees that if you cast a pointer to a different type, and then reinterpret_cast it back to the original type, you get the original value. So in the following: a and c contain the same value, … Read more

Very basic C++ program issue – Invalid operands to binary expression

You’ve fallen victim to the most vexing parse, which means thisisanumber is being treated as a function. Take out the parentheses and you should be fine: Also consider making it a bit more readable, such as thisIsANumber. If you ever need to know it, thisIsANumber uses the camel-case naming convention.

rand() between 0 and 1

This is entirely implementation specific, but it appears that in the C++ environment you’re working in, RAND_MAX is equal to INT_MAX. Because of this, RAND_MAX + 1 exhibits undefined (overflow) behavior, and becomes INT_MIN. While your initial statement was dividing (random # between 0 and INT_MAX)/(INT_MAX) and generating a value 0 <= r < 1, … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)