What is something that almost nobody knows about C++?

#c++

What is GEEK

Buddha Community

I’m going to go with one that’s not only little known, but produces results that many find somewhat counter-intuitive.

When you declare a function as being a friend of a class, that function can’t be a member of the class that’s declaring it as a friend. Consider code like this:

class foo {
  friend int bar();
};

Normally, a declaration of bar inside of foo’s definition would refer to foo::bar. But we’ve declared bar as a **friend** of foo—which means it can’t be a member of foo. As a result, what we’ve actually declared is ::bar() (more generally, we’ve declared bar in whatever scope surrounds foo).

So far, most people find that perfectly reasonable. The next step is where things get interesting. The friend declaration can also be a definition:

class foo { 
  friend int bar() { return 1; }
};

Just like before, this declares (and in this case, also defines) ::bar(), not foo::bar(). So, even though we’ve defined bar() inside the definition of **class** foo, the name bar is “injected” into the surrounding scope.

Then we get to the part most people find truly baffling. The preceding code defines a function named ::bar(), but if we try to invoke ::bar() directly (in a way that doesn’t look things up via foo) our code will fail:

// Warning: this will not compile:
class foo { 
   friend int bar() { return 0; }
};
 
int main() { 
   bar();
}

If we try to compile this, we’ll get an error in main(), saying the compiler can’t find bar(). But if we try to define bar() separately:

class foo { 
   friend int bar() { return 0; }
};
 
int bar() { return 0; }
 
int main() { 
   bar();
}

…we’ll get an error at the second definition of bar(), saying we can’t define bar(), because it’s already been defined (note: producing an error message isn’t strictly required, but the code violates the one-definition rule, so it isn’t allowed, and at least as long as all the code is in a single file, every compiler I know of will generate an error message).

In quite a few cases (e.g., recent versions of g++) we’ll get errors for *both *the attempt to define bar at global scope and the attempt to call it from main, the first saying we can’t define ::bar() because it’s already defined, and the second saying we can’t call ::bar() because it isn’t declared!)

And if you read that carefully, it does lead to how you can call bar() directly: it’s already defined, but not declared (in a way that’s visible to main). To make it visible inside main, you have to declare it at global scope:

class foo { 
   friend int bar() { return 0; }
};
int bar();
int main() { 
   bar();
}

Tamale  Moses

Tamale Moses

1624240146

How to Run C/C++ in Sublime Text?

C and C++ are the most powerful programming language in the world. Most of the super fast and complex libraries and algorithms are written in C or C++. Most powerful Kernel programs are also written in C. So, there is no way to skip it.

In programming competitions, most programmers prefer to write code in C or C++. Tourist is considered the worlds top programming contestant of all ages who write code in C++.

During programming competitions, programmers prefer to use a lightweight editor to focus on coding and algorithm designing. VimSublime Text, and Notepad++ are the most common editors for us. Apart from the competition, many software developers and professionals love to use Sublime Text just because of its flexibility.

I have discussed the steps we need to complete in this blog post before running a C/C++ code in Sublime Text. We will take the inputs from an input file and print outputs to an output file without using freopen file related functions in C/C++.

#cpp #c #c-programming #sublimetext #c++ #c/c++

Dicey Issues in C/C++

If you are familiar with C/C++then you must have come across some unusual things and if you haven’t, then you are about to. The below codes are checked twice before adding, so feel free to share this article with your friends. The following displays some of the issues:

  1. Using multiple variables in the print function
  2. Comparing Signed integer with unsigned integer
  3. Putting a semicolon at the end of the loop statement
  4. C preprocessor doesn’t need a semicolon
  5. Size of the string matters
  6. Macros and equations aren’t good friends
  7. Never compare Floating data type with double data type
  8. Arrays have a boundary
  9. Character constants are different from string literals
  10. Difference between single(=) and double(==) equal signs.

The below code generates no error since a print function can take any number of inputs but creates a mismatch with the variables. The print function is used to display characters, strings, integers, float, octal, and hexadecimal values onto the output screen. The format specifier is used to display the value of a variable.

  1. %d indicates Integer Format Specifier
  2. %f indicates Float Format Specifier
  3. %c indicates Character Format Specifier
  4. %s indicates String Format Specifier
  5. %u indicates Unsigned Integer Format Specifier
  6. %ld indicates Long Int Format Specifier

Image for post


A signed integer is a 32-bit datum that encodes an integer in the range [-2147483648 to 2147483647]. An unsigned integer is a 32-bit datum that encodes a non-negative integer in the range [0 to 4294967295]. The signed integer is represented in twos-complement notation. In the below code the signed integer will be converted to the maximum unsigned integer then compared with the unsigned integer.

Image for post

#problems-with-c #dicey-issues-in-c #c-programming #c++ #c #cplusplus

Ari  Bogisich

Ari Bogisich

1590587580

Loops in C++ | For, While, and Do While Loops in C++

In this Video We are going to see how to use Loops in C++. We will see How to use For, While, and Do While Loops in C++.
C++ is general purpose, compiled, object-oriented programming language and its concepts served as the basis for several other languages such as Java, Python, Ruby, Perl etc.

#c #c# #c++ #programming-c

Ari  Bogisich

Ari Bogisich

1589816580

Using isdigit() in C/C++

In this article, we’ll take a look at using the isdigit() function in C/C++. This is a very simple way to check if any value is a digit or not. Let’s look at how to use this function, using some simple examples.

#c programming #c++ #c #c#

Shaylee  Lemke

Shaylee Lemke

1589791833

Object Oriented Programming in C++ | C++ OOPs Concepts | Learn Object Oriented C++

C++ is general purpose, compiled, object-oriented programming language and its concepts served as the basis for several other languages such as Java, Python, Ruby, Perl etc.

The goal of this course is to provide you with a working knowledge of C++. We’ll start with the basics, including syntax, operators, loops, and functions. This Course will explain you how to use data structures and create your own Functions. This Course will show you the details of the powerful object and template systems so you can create useful classes and objects.

Youtube channel: ProgrammingKnowledge - https://www.youtube.com/watch?v=_SH1T3y_D7o

#c #c# #c++ #programming-c